<!DOCTYPE html><html><head>
      <title>index</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="icon" href="./assets/image/sys/icon.png">
      
      
      
      
      
      <style>
      code[class*=language-],pre[class*=language-]{color:#333;background:0 0;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.4;-moz-tab-size:8;-o-tab-size:8;tab-size:8;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:.8em;overflow:auto;border-radius:3px;background:#f5f5f5}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal;background:#f5f5f5}.token.blockquote,.token.comment{color:#969896}.token.cdata{color:#183691}.token.doctype,.token.macro.property,.token.punctuation,.token.variable{color:#333}.token.builtin,.token.important,.token.keyword,.token.operator,.token.rule{color:#a71d5d}.token.attr-value,.token.regex,.token.string,.token.url{color:#183691}.token.atrule,.token.boolean,.token.code,.token.command,.token.constant,.token.entity,.token.number,.token.property,.token.symbol{color:#0086b3}.token.prolog,.token.selector,.token.tag{color:#63a35c}.token.attr-name,.token.class,.token.class-name,.token.function,.token.id,.token.namespace,.token.pseudo-class,.token.pseudo-element,.token.url-reference .token.variable{color:#795da3}.token.entity{cursor:help}.token.title,.token.title .token.punctuation{font-weight:700;color:#1d3e81}.token.list{color:#ed6a43}.token.inserted{background-color:#eaffea;color:#55a532}.token.deleted{background-color:#ffecec;color:#bd2c00}.token.bold{font-weight:700}.token.italic{font-style:italic}.language-json .token.property{color:#183691}.language-markup .token.tag .token.punctuation{color:#333}.language-css .token.function,code.language-css{color:#0086b3}.language-yaml .token.atrule{color:#63a35c}code.language-yaml{color:#183691}.language-ruby .token.function{color:#333}.language-markdown .token.url{color:#795da3}.language-makefile .token.symbol{color:#795da3}.language-makefile .token.variable{color:#183691}.language-makefile .token.builtin{color:#0086b3}.language-bash .token.keyword{color:#0086b3}pre[data-line]{position:relative;padding:1em 0 1em 3em}pre[data-line] .line-highlight-wrapper{position:absolute;top:0;left:0;background-color:transparent;display:block;width:100%}pre[data-line] .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}pre[data-line] .line-highlight:before,pre[data-line] .line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}pre[data-line] .line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}html body{font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ol,html body>ul{margin-bottom:16px}html body ol,html body ul{padding-left:2em}html body ol.no-list,html body ul.no-list{padding:0;list-style-type:none}html body ol ol,html body ol ul,html body ul ol,html body ul ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;background-color:#f0f0f0;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:700;color:#000}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:.85em;color:#000;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::after,html body code::before{letter-spacing:-.2em;content:'\00a0'}html body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:after,html body pre code:before,html body pre tt:after,html body pre tt:before{content:normal}html body blockquote,html body dl,html body ol,html body p,html body pre,html body ul{margin-top:0;margin-bottom:16px}html body kbd{color:#000;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#000;page-break-after:avoid}html body blockquote{color:#5c5c5c}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body code,html body pre{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview ul{list-style:disc}.markdown-preview ul ul{list-style:circle}.markdown-preview ul ul ul{list-style:square}.markdown-preview ol{list-style:decimal}.markdown-preview ol ol,.markdown-preview ul ol{list-style-type:lower-roman}.markdown-preview ol ol ol,.markdown-preview ol ul ol,.markdown-preview ul ol ol,.markdown-preview ul ul ol{list-style-type:lower-alpha}.markdown-preview .newpage,.markdown-preview .pagebreak{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center!important}.markdown-preview:not([data-for=preview]) .code-chunk .code-chunk-btn-group{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .status{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .output-div{margin-bottom:16px}.markdown-preview .md-toc{padding:0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div,.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0;min-height:100vh}@media screen and (min-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{font-size:14px!important;padding:1em}}@media print{html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc{padding:0 16px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div,html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% - 300px);padding:2em calc(50% - 457px - 300px / 2);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */

      </style>
      <!-- The content below will be included at the end of the <head> element. --><script type="text/javascript">
  document.addEventListener("DOMContentLoaded", function () {
    // your code here
  });
</script></head><body for="html-export">
    
    
      <div class="crossnote markdown-preview  ">
      
<p class="vession"><strong>文档版本:v2.0.34</strong></p>
<h1 id="平台介绍">平台介绍 </h1>
<h2 id="浏览器版本要求">浏览器版本要求 </h2>
<p>为保证系统运行流畅，建议使用以下浏览器版本：</p>
<table>
<thead>
<tr>
<th style="text-align:center">浏览器</th>
<th style="text-align:center">版本</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Chrome</td>
<td style="text-align:center">128.0.6613.138（正式版本）</td>
</tr>
<tr>
<td style="text-align:center">Mozilla Firefox</td>
<td style="text-align:center">130.0</td>
</tr>
<tr>
<td style="text-align:center">Microsoft Edge</td>
<td style="text-align:center">128.0.2739.79（正式版本）</td>
</tr>
<tr>
<td style="text-align:center">360安全浏览器</td>
<td style="text-align:center">15.2.6167.0</td>
</tr>
</tbody>
</table>
<h2 id="登录">登录 </h2>
<p><img src="./assets/image/sys/login.png" alt="登录"></p>
<ul>
<li>
<p><strong>编号指向说明</strong><br>
1、输入网址：(<a href="http://47.113.200.153:31301/">http://47.113.200.153:31301/</a>)</p>
<p>2、进入登录界面输入管理员提前注册的<strong>用户名</strong>和<strong>密码</strong>，点击登录。</p>
<p>建议点击收藏方便快捷登录，下次访问可直接快捷访问。</p>
</li>
</ul>
<h2 id="主页功能区说明">主页功能区说明 </h2>
<h3 id="主页介绍">主页介绍 </h3>
<ul>
<li>所有帐户登录系统后的统一入口页面。是系统各项操作的唯一呈现。主页汇聚功能操作、消息提示、报表、图表卡、国际化、皮肤模板等功能引导与显示。</li>
<li>主页分标题区、顶部功能区、导航、主窗口。是系统登录后主操作的入口。各功能区操作详见下面明细项说明。<br>
<img src="./assets/image/sys/home.png" alt="功能区说明"></li>
</ul>
<h3 id="1标题区">1标题区 </h3>
<h3 id="2导航栏">2导航栏 </h3>
<ul>
<li>
<p><strong>2-1说明</strong></p>
<p>导航栏是全系统功能程序的操作指引。</p>
<p><img src="./assets/image/sys/nav1.png" alt="导航栏"></p>
</li>
<li>
<p><strong>编号指向说明</strong></p>
<p>1、各系统模块：当鼠标移动到模块名称上，自动会显示以功能分组下的各可操作的明细功能。</p>
<p>2、功能分组：选择要操作的功能，主页的主窗口区分页显示功能窗口界面。</p>
<p>3、功能模块： 各功能模块和明细受系统权限设定。各操作帐户所显示的内容不同。</p>
</li>
<li>
<p><strong>2-2搭建</strong></p>
<p id="leftNav_back"></p>
<ul>
<li>
<p><strong>步骤</strong></p>
<p>第一步，打开左边侧系统管理，点击功能分组，开始新建主配置栏目功能表。 <strong><a href="#leftNav_config1">详细操作</a></strong></p>
<p>第二步，进入功能分组页面，在功能分组页面&lt;上表&gt;点击新增，依次填写字段内容后保存。</p>
<p>第三步，注意提示与标题字段需要根据国际化规范填写（开头原文填写英文、简体中文、繁体中文、英文）。<a href="#global" id="g1" onclick="lastClickedId = this.id">国际化语言</a></p>
<p>第四步，选中&lt;上表&gt;新增数据，点击&lt;下表&gt;新增按钮，新增功能分组，可新增多个分组，组名字段需要按照国际化规范填写。<a href="#global" id="g2" onclick="lastClickedId = this.id">国际化语言</a></p>
<p>第五步，点击保存后ctrl+f5刷新，功能生效。</p>
</li>
</ul>
</li>
</ul>
<p><strong><a id="leftNav_config1" href="#leftNav_back">第一步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys%20(12).png" alt="顶部功能区"></p>
<h3 id="3顶部功能区">3顶部功能区 </h3>
<p><img src="./assets/image/sys/top.png" alt="顶部功能区"></p>
<ul>
<li>
<p><strong>1.主题：</strong>   可切换主题以及自定义用户主题， <a href="#userPref" id="top_func_back">点击查看详细说明</a>;</p>
</li>
<li>
<p><strong>2.历史打开记录：</strong>  可查看历史打开界面，历史打开记录会显示用户最近访问过的功能，并且可以帮助用户方便地找回之前浏览过的内容;</p>
</li>
<li>
<p><strong>3.功能搜索：</strong>  全局搜索功能，根据搜索关键词查找功能，关键词可以是功能名的国际化语言;</p>
</li>
<li>
<p><strong>4.待办事项：</strong>  推送关联用户的事项快捷进入，如用户A新建一张单据，并将单据推送给用户B审核，用户B的待办事项便会出现消息红点；</p>
</li>
<li>
<p><strong>5.错误：</strong> 用户在操作系统时出现的报错信息存储其中，方便用户查找报错原因；</p>
</li>
<li>
<p><strong>6.通知：</strong> 消息分类中进行公告类文件推送，带角标显示消息数量；</p>
</li>
<li>
<p><strong>7.警报：</strong>  系统发出的警告或通知，用于提醒用户或管理员某种重要的信息或事件。警报消息可以包括安全警报、系统错误或网络连接问题。</p>
</li>
<li>
<p><strong>8.广播</strong>   推送给全体用户的消息，带角标显示消息数量：</p>
</li>
<li>
<p><strong>9.预警</strong>  预警消息是指在可能发生某种危险、灾害或紧急情况之前，向相关人员发送的警示信息。预警消息的目的是提前通知人们可能面临的风险，以便他们采取必要的预防措施或行动来减少损失或保护自身安全。</p>
</li>
<li>
<p><strong>10.帮助：</strong>  软件使用手册快捷进入入口；点击后可按照模块找到对应操作说明文档，帮助文档是系统操作方面帮助文档，开发文档为系统开发过程中编写的各种文档，用于记录系统的需求、设计、实现和测试等信息。这些文档对于开发团队和维护人员来说都是非常重要的，可以帮助他们更好地理解系统的功能和结构，从而有效地开发、测试和维护系统。</p>
</li>
<li>
<p><strong>11.国际化语言选择：</strong>  国际化语言切换，目前支持简体中文、繁体中文、英文，通过提供多语言支持，用户可以选择他们熟悉的语言来使用系统，从而提升用户体验。用户能够更轻松地理解系统的界面、功能和提示信息，减少使用障碍。</p>
</li>
<li>
<p><strong>12.用户昵称：</strong>  点击可注销退出账号，回到系统登录页面，或者快捷修改用户密码；</p>
</li>
</ul>
<p><strong><a id="userPref" href="#top_func_back">主题</a></strong><br>
功能一：切换现有主题，主题列表中会展示所有系统主题与当前用户的自定义主题，用户通过点击主题名切换主题，切换主题后，系统会自动保存用户当前主题，下次登录时自动切换到当前主题。<br>
<img src="./assets/image/sys/user_pref2.png" alt="切换主题"></p>
<p>功能二： 自定义主题 增删改<br>
当用户无自身主题，需从零开始新增，即所有设置需用户一一配置；用户喜好配置分为四类配置：一，模板信息，模板信息存储的是当前新增模板的基础信息，标题字段为国际化的主题名，类型用于区分系统主题与用户主题，只有管理员才能操作系统主题，预览效果选择新增主题块的预览颜色，备注字段可填写备注信息；二，全局，全局样式是控制系统样式最底层的元素，如字体类型，当切换字体类型，系统中所有字体类型都会随之改变；三，主页，主页样式是控制系统主页的样式，如导航，标题logo，顶部功能区，主内容区域等；四，组件，组件样式是控制系统各功能组件的样式，如功能组件的背景色，字体颜色，工具栏样式等。<br>
<img src="./assets/image/sys/user_pref3.png" alt="自定义主题"></p>
<p>当用户已经存在自身主题，可在原自身主题上面进行增删改，新增主题时，系统会自动将当前主题作为基础模板，用户只需修改基础模板即可，无需从零开始配置。<br>
<img src="./assets/image/sys/user_pref1.png" alt="自定义主题"></p>
<p>注意事项：用户设置自定义主题时，需考虑色彩搭配，避免色彩冲突，如设置背景色为深色背景时，字体颜色应设为浅色，避免用户无法看清字体内容；</p>
<p>功能三： 设置用户默认主题与系统默认主题<br>
管理员可设置系统默认主题与用户默认主题，当用户无自身主题，系统主题存在多套时，系统会自动切换到管理员设置的系统默认主题；当用户切换主题时，系统会自动保存用户当前主题为用户默认主题，下次登录时，系统会自动切换到用户默认主题。<br>
<img src="./assets/image/sys/user_pref4.png" alt="设置默认主题"></p>
<p><strong>国际化语言</strong><br>
国际化语言用于系统多语言切换，目前支持简体中文、繁体中文、英文，通过提供多语言支持，用户可以选择他们熟悉的语言来使用系统，从而提升用户体验。用户能够更轻松地理解系统的界面、功能和提示信息，减少使用障碍。</p>
<p><strong>历史打开记录</strong><br>
<img src="./assets/image/sys/history.png" alt="历史打开记录"></p>
<p><strong>待办事项</strong><br>
<img src="./assets/image/sys/todo.png" alt="待办事项"></p>
<p><strong>错误</strong><br>
<img src="./assets/image/sys/error.png" alt="错误"></p>
<p><strong>通知</strong><br>
<img src="./assets/image/sys/notice.png" alt="通知"></p>
<p><strong>广播</strong><br>
<img src="./assets/image/sys/broadcast.png" alt="广播"></p>
<p><strong>预警</strong></p>
<h3 id="4主窗口区">4主窗口区 </h3>
<h3 id="系统管理">系统管理 </h3>
<p><img src="./assets/image/sys/sys_manage.png" alt="系统管理菜单"></p>
<h4 id="4-1功能配置模块">4-1功能配置模块 </h4>
<h5 id="4-1-1系统功能">4-1-1系统功能 </h5>
<p>用来新建、修改、删除功能组件</p>
<h5 id="4-1-2功能分组">4-1-2功能分组 </h5>
<p>用来新建、修改、删除左侧菜单</p>
<h5 id="4-1-3菜单">4-1-3菜单 </h5>
<p>为功能组件添加图标，隐藏功能组件，添加分界线，设置固定位置；</p>
<p><strong>功能分组效果配置</strong><br>
<img src="./assets/image/sys/functionMenu%20(3).png" alt="功能分组"></p>
<ul>
<li>第一步，进入菜单，点击新增，开启固定位置</li>
</ul>
<p><img src="./assets/image/sys/functionMenu%20(1).png" alt="功能分组"></p>
<ul>
<li>第二步，选择相应功能，父id字段多对一选择新增分组名；</li>
</ul>
<p><img src="./assets/image/sys/functionMenu%20(2).png" alt="功能分组"></p>
<h5 id="4-1-4报表设计">4-1-4报表设计 </h5>
<p>报表设计是指根据特定的需求和目的，设计出适合展示数据和信息的报表格式、布局和样式。在报表设计中，需要考虑数据的来源、内容、结构，以及用户的需求和习惯，以确保报表能够清晰、准确地传达所需的信息，需注意本系统报表设计需使用API数据集的方式。</p>
<p><strong>API参数说明</strong></p>
<pre data-role="codeBlock" data-info="js" class="language-javascript js"><code>      <span class="token punctuation">{</span>
      <span class="token comment">//  view必须是系统功能视图mysql|mongo，sp是存储过程，sys为后端特殊定制</span>
      <span class="token string">"type"</span><span class="token operator">:</span><span class="token string">"view"</span><span class="token operator">|</span><span class="token string">"sp"</span><span class="token operator">|</span><span class="token string">"sys"</span>，
      <span class="token string">"cmd"</span><span class="token operator">:</span><span class="token string">""</span> <span class="token punctuation">,</span><span class="token comment">//存储过程名，视图名，系统命令</span>
      <span class="token string">"dbName"</span><span class="token operator">:</span><span class="token string">""</span>
      <span class="token string">"filter"</span><span class="token operator">:</span> <span class="token comment">//视图时有效 它是一个sql字符串</span>
      <span class="token string">"cmdParams"</span><span class="token operator">:</span> <span class="token comment">//sp参数 在type = sp | sys 有效 sp 通过类似get的方式获取数据</span>
      <span class="token punctuation">}</span>
</code></pre><p><strong>系统测试API</strong><br>
<img src="./assets/image/sys/testAPI.png" alt="API"></p>
<h5 id="4-1-5用户偏好">4-1-5用户偏好 </h5>
  <!-- 文档同步更新 -->
<h5 id="4-1-6消息">4-1-6消息 </h5>
<p>存放系统消息内容，包括广播，预警，通知公告等消息；</p>
<h5 id="4-1-7打印配置">4-1-7打印配置 </h5>
<p>给功能分配打印模板；<br>
<strong>详细操作</strong></p>
<ul>
<li>第一步，进入报表设计，选择制作好的模板，复制url路径上的编码<br>
<img src="./assets/image/sys/print1.png" alt="打印"></li>
<li>第二步，进入打印配置，选择相应功能ID，输入复制的编码；<br>
<img src="./assets/image/sys/print2.png" alt="打印"></li>
<li>第三步，打开功能，点击打印，选择刚添加的模板；<br>
<img src="./assets/image/sys/print3.png" alt="打印"></li>
</ul>
<h5 id="4-1-8通用方法配置">4-1-8通用方法配置 </h5>
<p>存储过程通用方法用于交互。</p>
<h5 id="4-1-9自定义按钮状态记录">4-1-9自定义按钮状态记录 </h5>
<p>配置自定义按钮时勾选读取当前状态,并在交互中返回setCustomBtnStatus命令，该功能的自定义按钮状态将会存入此表。</p>
<h4 id="4-2基础设施模块">4-2基础设施模块 </h4>
<h5 id="4-2-1字段库">4-2-1字段库 </h5>
<p>对字段进行新增，修改，删除，查询；根据不同数据类型字段配置不同的ui展示效果，如bit类型字段内容会使用swich开关展示。</p>
<table>
<thead>
<tr>
<th>字段数据类型</th>
<th>作用</th>
</tr>
</thead>
<tbody>
<tr>
<td>varchar(size)</td>
<td>字符串，最大字节长度由(size)指定</td>
</tr>
<tr>
<td>bigint</td>
<td>存储整数值</td>
</tr>
<tr>
<td>bit</td>
<td>存储位数据或位序列，ui层面使用swich开关展示</td>
</tr>
<tr>
<td>mediumtext</td>
<td>ui层面为富文本</td>
</tr>
<tr>
<td>datetime</td>
<td>日期时间，ui层面为日期选择器</td>
</tr>
<tr>
<td>int</td>
<td>数字类型</td>
</tr>
<tr>
<td>smalint</td>
<td>存储较小范围的整数值</td>
</tr>
<tr>
<td>json</td>
<td>存储json内容</td>
</tr>
<tr>
<td>decimal(p,s)</td>
<td>数字类型    P为整数位，S为小数位</td>
</tr>
</tbody>
</table>
<h5 id="4-2-2系统关键字">4-2-2系统关键字 </h5>
<p>系统关键字是在系统中具有特殊含义或功能的保留字或标识符。这些关键字被系统用于表示数据库命令指示符与国际化语言。</p>
<h5 id="4-2-3国际化">4-2-3国际化 </h5>
<p>系统国际化（Internationalization，通常缩写为i18n，其中18代表“国际化”这个单词中的字母数量）指的是设计和开发软件系统时考虑到不同地区、不同语言和不同文化的需求，以便系统能够在全球范围内适应不同的语言和文化环境。系统国际化的主要目标是使系统能够轻松地适应不同的语言和文化，而无需对源代码进行大规模修改。<br>
本系统国际化存储数据分为系统级与用户级数据，系统级是平台层面必须的国际化数据，用户不可修改，用户级是在输入国际化语言时所存储的数据。</p>
<h5 id="4-2-4字段附加列表属性">4-2-4字段附加列表属性 </h5>
<p>存储系统下拉菜单状态信息，在功能字段配置中，配置字段下拉菜单便是从该表中查询，字段附加列表属性数据分为系统级与用户级，只有管理员才能处理系统级数据，用户新增时需选择用户级。   <strong><a href="#slc_field" id="slc1">下拉字段配置操作</a></strong></p>
<h5 id="4-2-5基础设置">4-2-5基础设置 </h5>
<p>本系统的基础设置内容，包含系统默认语言、系统表默认字段、权限冲突、系统视图、雪花工作ID、备份数据库保留天数、系统表、备份数据库信息等设置，基础设置非管理员禁止修改。</p>
<h5 id="4-2-6帐套">4-2-6帐套 </h5>
<p>存放帐套与帐套功能明细。</p>
<h5 id="4-2-7外观元素">4-2-7外观元素 </h5>
<p>本系统各功能的工具栏可见元素集合。</p>
<h5 id="4-2-8公共api">4-2-8公共API </h5>
<p>本系统的公共API分为四个大类，第一类，存储过程名，用来操作数据库的存储过程api；第二类，系统策略，系统策略API是系统提供的一组编程接口（API），用于访问和执行系统策略或规则。这些API可以让开发人员编写代码来与系统中定义的策略进行交互，从而实现自动化、定制化或集成化的功能；第三类，规则库，规则api是系统使用者通过规则编辑实现自定义功能逻辑的api接口；第四类，web请求，web请求是本系统向外部/第三方请求数据使用。</p>
<h5 id="4-2-9控件配置">4-2-9控件配置 </h5>
<p>控件为系统个性化需求设计的行控件，此表存放常见控件的具体json配置，当用户配置字段控件选择来源方式为控件配置表（cmd=2）时，无需填写具体的控件信息，只需填入参数controlTitle=此表对应的标题内容；</p>
<h5 id="4-2-10提示消息">4-2-10提示消息 </h5>
<p>展示系统提示信息，如新增成功、删除成功等。平台级别的提示消息已完善，业务错误消息需用户自行添加。</p>
<p><strong>如何新增错误信息</strong><br>
进入提示消息功能，左侧树状表先选择用户级，然后新增简繁英三条数据，完善消息编号与消息详情</p>
<p>填写时注意事项：<br>
1.填写错误编码，注意不要有空格，<br>
2.需新增三条数据，消息字段内容对应该错误信息的简体，繁体，英文，注意不能输入引号。<br>
3.创建者字段无需填写，保存后自动添加<br>
4.内容如果是变量，消息字段填写时可将其替换为'{0}'</p>
<h4 id="4-3权限设置">4-3权限设置 </h4>
<p><img src="./assets/image/sys/competence.png" alt="权限"></p>
<p><strong>说明</strong></p>
<ul>
<li>本系统将用户分配到不同的角色中，每个角色具有不同的权限，通过角色设置管理用户的权限。</li>
</ul>
<p><strong>关系</strong></p>
<ul>
<li>1.帐套与帐套功能明细：系统数据库帐套下的帐套功能包含系统所有功能。</li>
<li>2.帐套与角色：角色是权限控制的最小颗粒，多个角色可隶属于同一帐套id。</li>
<li>3.角色与角色明细：角色明细由用户或用户组构成，用户所拥有的所有权限都由该用户所对应的角色控制。</li>
<li>4.用户与用户组：如&lt;管理员用户&gt;都存储与&lt;管理员用户组&gt;中，然后将&lt;管理员用户组&gt;分配到&lt;管理员角色&gt;中，这样&lt;管理员用户组&gt;下的所有用户都拥有&lt;管理员角色&gt;的权限。</li>
<li>4.角色与角色功能：如果用户不是超级管理员角色，当用户新建功能之后，需要将该功能手动添加到对应角色下的角色功能。</li>
<li>5.角色功能与帐套功能：角色功能从帐套功能中查找添加。</li>
<li>6.角色功能外观权限（基础）：控制该角色下功能中按钮、字段等可视化功能。</li>
<li>7.角色功能规则权限（策略）：如用户一登录后，不显示描述字段。</li>
</ul>
<h5 id="4-3-1如何新增新用户">4-3-1如何新增新用户 </h5>
<ul>
<li>
<p>步骤<br>
一、进入用户，新增用户信息<br>
<img src="./assets/image/sys/newUser1.jpg" alt="新用户"></p>
<p><strong>注意：</strong>  新增用户信息时，用户密码一定要保存好，点击保存之后用户密码就不可查看</p>
  <br>
<p>二、进入角色设置，为新增用户分配角色<br>
<img src="./assets/image/sys/newUser2.png" alt="新用户"><br>
<strong>编号指向说明：</strong><br>
1.上表选中角色，下表点击新增<br>
2.新增内容字段中，标题字段填写用户编号；<br>
3.角色类型字段选择用户角色；<br>
4.对象ID字段填写用户表中对应行ID；<br>
<img src="./assets/image/sys/newUser6.png" alt="新用户"></p>
<p><strong>注意：</strong>  批量为多个用户分配同一个角色权限时，可在用户组表新建用户组，如新建“人事”组，人事部门用户全部添加到“人事”组中，然后为“人事”组分配人事角色，那么该分组内所有用户成员都会获得相同的角色权限，新增用户后只需在用户组添加用户成员即可获得相应的角色权限。<br>
<img src="./assets/image/sys/newUser8.png" alt="新用户"></p>
  <br>
<p>三、进入权限，选中角色，点击新增，选择“工艺管理”，点击确认。<br>
<img src="./assets/image/sys/newUser3.png" alt="新用户"></p>
  <br>
<p>四、进入帐户权限查询，查看新增用户权限是否冲突<br>
<img src="./assets/image/sys/newUser4.png" alt="新用户"><br>
<strong>编号指向说明：</strong><br>
1.进入帐户权限查询，左表选中新增用户；<br>
2.该用户对应的帐户信息，如果该用户在不同用户组，该表会展示此用户所有的用户组信息；<br>
3.该用户对应的角色信息；<br>
4.该用户对应的角色功能；<br>
5.角色功能对应的外观权限；<br>
6.角色功能对应的规则权限</p>
<p><strong>注意：</strong>  帐户权限查询只提供查询功能，不可进行编辑、新增、删除操作。</p>
  <br>
<p>五、切换账号时，需注销账号，点击刷新，再使用新账号登录<br>
<img src="./assets/image/sys/newUser7.png" alt="新用户"><br>
<img src="./assets/image/sys/newUser5.png" alt="新用户"></p>
</li>
</ul>
<h5 id="4-3-2如何添加新角色">4-3-2如何添加新角色 </h5>
<ul>
<li>
<p>步骤<br>
一.进入角色设置，主表点击新增，添加新角色,绑定帐套ID<br>
<img src="./assets/image/sys/role1.png" alt="角色"></p>
<ul>
<li>编号指向说明：</li>
<li>1.点击新增后填写角色信息</li>
<li>2.点击放大镜图标，进入帐套查询</li>
<li>3.双击选择帐套</li>
</ul>
<br>
<p>二.选中新增角色，在从表点击新增，填写角色明细<br>
<img src="./assets/image/sys/role2.png" alt="角色"></p>
<ul>
<li>编号指向说明：</li>
<li>1.填写用户编号</li>
<li>2.选择角色类型，用户角色/用户组角色</li>
<li>3.根据角色类型，从用户或者用户组表中复制id填入</li>
</ul>
<br>
<p>三.根据角色类型，从用户或者用户组表中复制id填入<br>
<img src="./assets/image/sys/role3.png" alt="角色"></p>
<ul>
<li>编号指向说明：</li>
<li>1.点击列设置</li>
<li>2.勾选id字段</li>
<li>3.点击确认</li>
<li>4.鼠标放入id字段，右键点击</li>
<li>5.选择复制单元格</li>
</ul>
<p><img src="./assets/image/sys/role4.png" alt="角色"></p>
<br>
<p>四.进入权限，角色表中选中新增角色，角色功能表中添加功能<br>
<img src="./assets/image/sys/limits1.png" alt="权限"></p>
<ul>
<li>编号指向说明：</li>
<li>1.选中新增角色</li>
<li>2.工具栏说明
<table>
<thead>
<tr>
<th>按钮</th>
<th>功能</th>
</tr>
</thead>
<tbody>
<tr>
<td>新增</td>
<td>从该角色绑定的帐套功能明细中选取功能</td>
</tr>
<tr>
<td>从角色中复制</td>
<td>复制相同帐套id的角色功能，此处可复制对应角色下的所有功能</td>
</tr>
<tr>
<td>刷新</td>
<td></td>
</tr>
<tr>
<td>保存</td>
<td></td>
</tr>
<tr>
<td>重置所有功能</td>
<td>角色功能删除后，一键重置所有功能，功能来自于对应的帐套功能明细</td>
</tr>
<tr>
<td>删除</td>
<td>删除角色功能需先删除后保存</td>
</tr>
</tbody>
</table>
</li>
<li>3.模块工具栏说明
<table>
<thead>
<tr>
<th>按钮</th>
<th>功能</th>
</tr>
</thead>
<tbody>
<tr>
<td>新增</td>
<td>从该角色绑定的帐套功能明细中选取部分功能，如系统测试只能选择对应角色系统测试中的功能</td>
</tr>
<tr>
<td>从角色中复制</td>
<td>复制相同帐套id的角色功能，此处只能复制对应角色下的部分功能</td>
</tr>
</tbody>
</table>
</li>
</ul>
  <br>
<p>五.选中功能，设置功能外观权限<br>
<img src="./assets/image/sys/limits2.png" alt="权限"></p>
<ul>
<li>编号指向说明：</li>
<li>1.选中新增功能</li>
<li>2.工具栏说明：
<table>
<thead>
<tr>
<th>按钮</th>
<th>功能</th>
</tr>
</thead>
<tbody>
<tr>
<td>全部权限</td>
<td>开启该功能的全部权限</td>
</tr>
<tr>
<td>取消所有选择</td>
<td>关闭该功能的全部权限</td>
</tr>
<tr>
<td>从角色中复制</td>
<td>复制相同帐套id下的角色功能权限</td>
</tr>
<tr>
<td>刷新</td>
<td></td>
</tr>
<tr>
<td>保存</td>
<td></td>
</tr>
</tbody>
</table>
</li>
<li>功能外观权限说明：
<table>
<thead>
<tr>
<th>权限</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>基本权限</td>
<td>功能权限中最大权限，关闭浏览权限，功能其他权限也会对应关闭</td>
</tr>
<tr>
<td>工具栏按钮权限</td>
<td>控制该功能所有标准按钮</td>
</tr>
<tr>
<td>字段显示权限</td>
<td>控制该功能字段显示设置</td>
</tr>
<tr>
<td>刷新</td>
<td></td>
</tr>
<tr>
<td>保存</td>
<td></td>
</tr>
</tbody>
</table>
</li>
</ul>
  <br>
<p>六.选择功能，可设置功能规则权限，如用户一进入该功能不显示描述字段<br>
<img src="./assets/image/sys/limits3.png" alt="权限"></p>
<ul>
<li>编号指向说明：</li>
<li>1.选中新增功能</li>
<li>2.点击放大镜按钮，进入公共API查询</li>
<li>3.双击选中所需API，只能选择存储过程或规则库中的API。</li>
<li>4.开启允许<br>
**注意：**功能规则权限选择API时只能选择存储过程或规则库中的API，并且API的传入参数必须有'params',传出参数必须有'result'，使用标准过滤表达式时使用单引号。</li>
</ul>
</li>
</ul>
<h5 id="4-3-3权限优先级">4-3-3权限优先级 </h5>
<p><strong>场景示例</strong><br>
用户A加入“管理组”和“人事组”，用户B加入“人事组”；“人事组”被分配“人事角色”，用户B获得“人事角色”权限；“管理组”被分配“管理员角色”，用户A同时获得“管理员角色”与“人事角色”。“管理员角色”的功能权限中设置"test_mysql1"功能进行规则过滤，规则名为“rule_one”;“人事角色”的功能权限中同样设置"test_mysql1"功能进行规则过滤，规则名为“rule_two”;当用户B登录并打开"test_mysql1"时，执行规则"rule_two",而用户A登录并打开"test_mysql1"时就会出现权限冲突。</p>
<p><strong>示例图</strong></p>
<p><img src="./assets/image/sys/rulePriority.png" alt="权限优先级"></p>
<p><strong>解决方式</strong></p>
<p>设置规则过滤中的权限优先级，数字越大优先级越高，系统会自动执行优先级高的规则。</p>
<p><img src="./assets/image/sys/rulePriority1.png" alt="权限优先级"></p>
<p><strong>外观权限冲突</strong></p>
<p>本系统的外观权限自动设置允许优先，不会出现冲突。</p>
<p>举例：“人事角色”设置新增按钮不可用，“管理员角色”设置新增按钮是可用的，同时拥有“管理员角色”与“人事角色”的用户A打开功能时，新增按钮会处于可用状态。</p>
<p><img src="./assets/image/sys/rulePriority2.png" alt="权限优先级"></p>
<br>
<p><strong><a id="add_permission" href="">4-3-4新建功能后如何增加权限</a></strong><br>
第一步，进入系统管理-账户权限查询，查看自己对应的角色。<br>
<img src="./assets/image/sys/add_permission1.png" alt="新增功能权限"><br>
第二步，明确角色之后，进入系统管理-权限，选中左侧角色，中间表选择&lt;新增功能&gt;配置的菜单导航，本例使用“系统测试”，点击新增按钮，选择&lt;新增功能&gt;<br>
<img src="./assets/image/sys/add_permission2.png" alt="新增功能权限"></p>
<p>第三步，添加完功能后，中间表选中功能，右边表配置外观权限，点击选择全部，一键开启所有权限<br>
<img src="./assets/image/sys/add_permission3.png" alt="新增功能权限"></p>
<h5 id="4-3-5如何使用单点登录">4-3-5如何使用单点登录 </h5>
<p>单点登录允许用户在一个集中的认证过程中验证其身份，随后即可无缝访问多个相互信任的应用系统，而无需在每个应用系统中分别登录。</p>
<p><img src="./assets/image/sys/single_sign_on.png" alt="单点登录"></p>
<ul>
<li>第一步，进入系统管理中验证密文功能，输入用户名与密码获取验证密文</li>
</ul>
<p><img src="./assets/image/sys/gainKey.png" alt="验证密文"></p>
<p><strong>编号指向说明</strong><br>
1.输入用户名和密码，获取验证密文<br>
2.复制密文</p>
<ul>
<li>第二步，进入人员档案功能，复制员工中航码</li>
</ul>
<p><img src="./assets/image/sys/person_code.png" alt="复制中航码"><br>
<strong>编号指向说明</strong><br>
1.全局搜索人员档案功能<br>
2.复制人员中航码</p>
<ul>
<li>第三步，拼接地址  可操作相应功能。</li>
</ul>
<p><strong>地址拼接方式</strong><br>
方式一：<a href="http://47.113.200.153:31301/app?key=%E5%AF%86%E6%96%87&amp;name=%E5%BC%80%E6%94%BE%E7%9A%84%E5%8A%9F%E8%83%BD%E5%90%8D&amp;uid=%E4%B8%AD%E8%88%AA%E7%A0%81">http://47.113.200.153:31301/app?key=密文&amp;name=开放的功能名&amp;uid=中航码</a><br>
方式二：<a href="http://47.113.200.153:31301/?app=key=%E5%AF%86%E6%96%87,name=%E5%BC%80%E6%94%BE%E7%9A%84%E5%8A%9F%E8%83%BD%E5%90%8D,uid=%E4%B8%AD%E8%88%AA%E7%A0%81">http://47.113.200.153:31301/?app=key=密文,name=开放的功能名,uid=中航码</a></p>
<p><strong>注意</strong><br>
1.功能名必须为国际化功能名，例：test1_basegrid_top<br>
2.功能名必须为主功能名，单点登录无法开放单个副功能。<br>
3.本系统的所有功能均为权限系统控制，因此该用户账号必须有&lt;开放功能&gt;的权限，否则页面会出现暂无任何权限</p>
<p><img src="./assets/image/sys/sso_serve1.png" alt="单点登录"></p>
<h5 id="4-3-6用户表操作注意事项">4-3-6用户表操作注意事项 </h5>
<p>用户自己只能修改自己的信息，非管理员不能修改他人信息</p>
<h4 id="4-4运维">4-4运维 </h4>
<h5 id="4-4-1自动编号">4-4-1自动编号 </h5>
<p><strong>一、说明</strong><br>
自动编号可以节省用户手动输入序号的时间和精力，尤其是在大规模的数据处理中。此外，自动生成的序号还能保证数据的准确性和一致性，避免了人为输入错误或遗漏的问题。在数据展示中，序号还可以用于数据的排序和筛选。通过序号的排序，用户可以按照特定的规则或条件对数据进行排列，从而更好地理解和分析数据。</p>
<p><strong>二、实现步骤</strong></p>
  <p id="auth_number_back1"></p>
<p><img src="./assets/image/sys/auth_numer1.png" alt="自动编号"></p>
<p><strong>第一步：</strong>  进入自动编号功能，点击新增，编辑表头内容选择功能ID；  <strong><a href="#auth_number_config1">点击查看详细操作</a></strong></p>
<p><strong>第二步：</strong>  填写目标字段，可在系统功能中查找，该字段必须填写； <strong><a href="#auth_number_config2">点击查看查找方法</a></strong></p>
<p><strong>第三步：</strong>   编辑表体，点击增行；</p>
<p><strong>第四步：</strong>   填写序号，注意先后顺序；</p>
<p><strong>第五步：</strong>   选择数据类型，根据填写后续字段内容； <strong><a href="#auth_number_config3">数据类型对应规则</a></strong></p>
<p><strong>第六步：</strong>   点击保存，再点击审核；<strong><a href="#auth_number_config4">点击查看效果</a></strong></p>
<p><strong>三、注意事项</strong><br>
1.自动编号通常用于单据的单号制作，因此，单号字段应设置禁止编辑，由系统自动维护<br>
2.当单据保存后，该单号自动生成，生成的单号一定要使用。</p>
<p><strong><a id="auth_number_config1" href="#auth_number_back1">第一步详细操作</a></strong></p>
<p>进入自动编号功能，在编辑状态下点击放大镜按钮，弹出系统功能查询；在系统功能查询弹窗中点击清除筛选，再搜索功能，然后双击选中功能，第一步完成。<br>
<img src="./assets/image/sys/auth_number2.png" alt="自动编号"></p>
<p><strong><a id="auth_number_config2" href="#auth_number_back1">第二步查找方法</a></strong></p>
<p>进入系统功能，搜索功能后右键选择修改功能，点击字段，查看字段名；<br>
<img src="./assets/image/sys/auth_number5.png" alt="自动编号"><br>
<img src="./assets/image/sys/auth_number4.png" alt="自动编号"></p>
<p><strong><a id="auth_number_config3" href="#auth_number_back1">第五步数据类型对应规则表</a></strong></p>
<table>
<thead>
<tr>
<th>数据类型</th>
<th>输入值</th>
<th>日期格式</th>
<th>子查询</th>
<th>分隔符</th>
<th>长度</th>
</tr>
</thead>
<tbody>
<tr>
<td>固定值</td>
<td>√</td>
<td>x</td>
<td>x</td>
<td>√</td>
<td>x</td>
</tr>
<tr>
<td>自动</td>
<td>√</td>
<td>x</td>
<td>x</td>
<td>√</td>
<td>√</td>
</tr>
<tr>
<td>日期</td>
<td>x</td>
<td>√</td>
<td>x</td>
<td>√</td>
<td>x</td>
</tr>
<tr>
<td>字段</td>
<td>x</td>
<td>x</td>
<td>√</td>
<td>√</td>
<td>x</td>
</tr>
</tbody>
</table>
<p><strong>说明</strong>  1.“√”代表可输入，“X”代表不可输入；<br>
2.数据类型为日期时，选择参与编号可以实现当编号日期跳转到下一月时，对应的自动编号重头记录，如2024-03-31这天新增编号为TEST-2024-03-31=003，那么2024-04-01新增编号会变成TEST-2024-04-01=001；</p>
<p><strong><a id="auth_number_config4" href="#auth_number_back1">第六步实现效果</a></strong><br>
进入功能，点击新增，编辑内容，编码字段无需输入，编辑完成后保存编号自动产生。</p>
<p><img src="./assets/image/sys/auth_number3.png" alt="自动编号"><br>
<img src="./assets/image/sys/auth_number6.png" alt="自动编号"></p>
<h5 id="4-4-2编辑锁">4-4-2编辑锁 </h5>
<p><strong>一、说明</strong>  ：编辑锁是一种数据库管理系统中的锁类型，用于控制对数据的并发访问。编辑锁通常用于确保在进行编辑或更新操作时，其他事务不能同时修改相同的数据，以避免数据不一致或丢失更新的情况发生。</p>
<p><strong>二、触发场景</strong>  ：本系统在用户编辑数据时会自动记录用户编辑的功能ID，然后锁定该功能，从而保证其他用户在该功能编辑完成之前不可进行编辑，用户点击“取消编辑”、“保存”、“刷新”按钮时可以解除编辑锁。</p>
<p><strong>三、注意</strong> ：当用户在编辑&lt;功能一&gt;的同时新增浏览器页签，在新页签中编辑&lt;功能一&gt;会出现“数据锁定，请稍后再试”的提示，导致自己被自己锁定。</p>
<h5 id="4-4-3任务管理">4-4-3任务管理** </h5>
<p>系统的自动化任务，如定时清理过期的编辑锁数据</p>
<h5 id="4-4-4引用外键">4-4-4引用外键** </h5>
<p>外键是用来建立表与表之间关系的一种约束。在关系型数据库中，外键通常指向另一张表的主键，以确保数据的一致性和完整性。</p>
<h5 id="4-4-5国际化日志">4-4-5国际化日志 </h5>
<p>国际化日志是指将应用程序中的日志信息进行国际化处理，以便支持多种语言和区域设置。这样可以让应用程序在不同语言环境下显示相应的日志信息，提高用户体验和可用性。</p>
<h5 id="4-4-6废弃表">4-4-6废弃表 </h5>
<p>记录被用户删除的表，然后被自动化任务定时清理；</p>
<h5 id="4-4-7图库">4-4-7图库 </h5>
<p>记录用户新增的画布图信息；</p>
<h5 id="4-4-8文件库">4-4-8文件库 </h5>
<p>记录用户新增的文件信息</p>
<h5 id="4-4-9回收桶">4-4-9回收桶 </h5>
<p>文件库删除文件之后，文件不会被立即清理，而是存入回收桶，通过垃圾回收事务定时清除</p>
<p><strong>回收事务说明</strong><br>
<img src="./assets/image/sys/recovery.png" alt="垃圾回收"></p>
<p>1.功能中保存文件后上传NFS与写入文件库表<br>
2.功能删除文件后，该文件从文件库中回收到回收桶，未对NFS进行操作。<br>
3.因此垃圾回收事务清除垃圾文件时，一、清除垃圾桶中文件， 二、对比NFS与文件库表，清除NFS对应不相关的文件。</p>
<h5 id="4-4-10系统视图">4-4-10系统视图 </h5>
<p>数据库的视图记录</p>
<h3 id="逻辑引擎">逻辑引擎 </h3>
<ul>
<li>
<p><strong>前言</strong></p>
<blockquote>
<p>为增强公司软件系统的代码逻辑的可配置和高灵活性，充分适应不同行业业务的灵活需求。从而减少客户二次开发成本，提高系统响应度，提升客户竞争率。本逻辑引擎优先考虑<strong>业务员或企业高级文员</strong>角色，以类似流程图的形式来表达软件系统逻辑。同时也考虑到专业的<strong>信息管理员角色</strong>，使用脚本方式来表达复杂的软件逻辑。逻辑引擎的标准库资源支持国际化显示。以便更好的理解逻辑的表达意图。</p>
</blockquote>
</li>
</ul>
<h4 id="1术语声明">1术语声明 </h4>
<ul>
<li><strong>变量</strong></li>
</ul>
<blockquote>
<p>是计算机语言中能储存计算结果或能表示值抽象概念。</p>
</blockquote>
<ul>
<li><strong>保留字</strong></li>
</ul>
<blockquote>
<p>逻辑引擎保留的关键词，不可在逻辑表达中使用。它属于逻辑引擎专用的关键词。</p>
</blockquote>
<ul>
<li><strong>数据类型</strong></li>
</ul>
<blockquote>
<p>逻辑表达式中的数据是什么类型。</p>
</blockquote>
<ul>
<li><strong>标识符</strong></li>
</ul>
<blockquote>
<p>在写代码的时候为了增强代码的阅读性，会自定义很多名字如：规则名、子规则名、变量名等。<br>
在编程的里，我们把这种为了增强程序阅读性而自定义的名称，称为标识符。</p>
</blockquote>
<ul>
<li><strong>逻辑引擎池</strong></li>
</ul>
<blockquote>
<p>“逻辑引擎池”,指的是一个具有多个实例的池子,你可以将”逻辑引擎池”类比于”数据库连接池”,都是为了解决性能和并发安全的问题.</p>
</blockquote>
<h4 id="2规则约定">2规则约定 </h4>
<p>2.1 <strong>保留字</strong></p>
<blockquote>
<p>begin end if then else declare string number boolean int date dateTime time  switch case default between match notMatch or and __EMPTY_EXPRESSION__<br>
argsInDeclare argsOutDeclare other return</p>
</blockquote>
<p>2.2 <strong>变量数据类型</strong></p>
<ul>
<li>脚本数据类型支持，字符串、整型、数字、日期、时间、日期时间、布尔。</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">数据类型</th>
<th style="text-align:center">说明</th>
<th style="text-align:left">例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">字符串</td>
<td style="text-align:center">存储Unicode码，用双引号赋值 长度0-65535 字节</td>
<td style="text-align:left">变量定义 s 字符串<br>变量定义 s,s1 字符串(10)<br>变量定义 s="a",s1="b" 字符串(10)</td>
</tr>
<tr>
<td style="text-align:center">整型</td>
<td style="text-align:center">有符号 -2147483648 ~ 2147483647,无符号 0 ~ 4294967295</td>
<td style="text-align:left">变量定义 n 整型<br>变量定义 n,n1 整型(10) <br>变量定义 n=1,n1=2 整型(10)</td>
</tr>
<tr>
<td style="text-align:center">数字(p,s)</td>
<td style="text-align:center">存储小数类型,p总长度,s小数位。小数点长度和总长度自定义。例:数字(18,6)</td>
<td style="text-align:left">变量定义 t  数字;<br>变量定义t,t1 数字(10,2)<br>变量定义 t=0.1,t1=0.2 数字(10,2)</td>
</tr>
<tr>
<td style="text-align:center">日期</td>
<td style="text-align:center">1000-01-01~9999-12-31</td>
<td style="text-align:left">变量定义 d 日期<br>变量定义 d,d1="2019-10-1" 日期</td>
</tr>
<tr>
<td style="text-align:center">时间</td>
<td style="text-align:center">00 : 00 : 00到23 : 59 : 59</td>
<td style="text-align:left">变量定义 t 时间<br>变量定义 t="08 : 01 : 00",t1 时间</td>
</tr>
<tr>
<td style="text-align:center">日期时间</td>
<td style="text-align:center">1000-01-01 00 : 00 : 00~9999-12-31 23 : 59 : 59</td>
<td style="text-align:left">变量定义 dt 日期时间 <br>变量定义 dt="2019-01-01 08 : 01 : 00" 日期时间</td>
</tr>
<tr>
<td style="text-align:center">布尔</td>
<td style="text-align:center">值【0、1、false、true】</td>
<td style="text-align:left">变量定义 b 布尔<br>变量定义 b=true,b1=false 布尔</td>
</tr>
</tbody>
</table>
<p>2.3 <strong>标识符命名约定</strong></p>
<ul>
<li>
<p>字母、汉字、数字、下划线、$组成，但不能以数字开头。</p>
</li>
<li>
<p>大小写敏感。</p>
</li>
<li>
<p>标识不接受空格包含空格字符。</p>
</li>
<li>
<p>不得使用本脚本约定的关键字和保留字。</p>
</li>
<li>
<p>标识符长度不可大于15个字符(双字节字符或多字节字符算1个字符)。</p>
</li>
</ul>
<h4 id="3逻辑编辑器">3逻辑编辑器 </h4>
<p><img src="./assets/image/sys/ruleEditWindow.png" alt="逻辑编辑器"></p>
<p>3.1 <strong>元素面板</strong></p>
<h4 id="4语法">4语法 </h4>
<p>4.1 <strong>开始/结束</strong></p>
<blockquote>
<p>一个逻辑内容只能有一个<strong>开始节点</strong>。当逻辑复杂时可以允许多个<strong>结束</strong>节点</p>
</blockquote>
<p>4.2 <strong>定义变量</strong></p>
<blockquote>
<p>declare  a string;declare  b number;declare   c boolean;规则传参变量在规则属性里定义，无需在表达式中定义。定义的变量会<strong>提升为全局变量</strong>，注意不可变量名重复，否则编译时会报错。</p>
</blockquote>
<p>4.2.1 <strong>变量的初始化</strong></p>
<blockquote>
<p>逻辑引擎编译器会将变量初始化.</p>
</blockquote>
<table>
<thead>
<tr>
<th style="text-align:center">变量类型</th>
<th style="text-align:center">初始化值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">string(字符)</td>
<td style="text-align:center">""</td>
</tr>
<tr>
<td style="text-align:center">number(数字)</td>
<td style="text-align:center">0.0</td>
</tr>
<tr>
<td style="text-align:center">boolean(布尔)</td>
<td style="text-align:center">false</td>
</tr>
<tr>
<td style="text-align:center">int(整数)</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">date(日期)</td>
<td style="text-align:center">"1900-00-00"</td>
</tr>
<tr>
<td style="text-align:center">Time(时间)</td>
<td style="text-align:center">"00:00:00"</td>
</tr>
<tr>
<td style="text-align:center">dateTime(日期时间)</td>
<td style="text-align:center">"1900-00-00 00:00:00"</td>
</tr>
</tbody>
</table>
<p>4.3 <strong>结束符</strong></p>
<pre data-role="codeBlock" data-info="text" class="language-text text"><code>程序体表达式需要用";"号作为表达式结束符.
例：
declare x string;
declare x,y number;
if (x!=y or x &gt; 0 or y &lt;&gt; 0) then {
   #程序体
   x = x + 1;
   ...
}else{
   #程序体
   a.b.c();
}
</code></pre><p>4.4 <strong>注解</strong></p>
<blockquote>
<p>行注解 // 块注解 /**/</p>
</blockquote>
<p>4.5 <strong>运算符</strong></p>
<table>
<thead>
<tr>
<th style="text-align:center">运算符</th>
<th style="text-align:center">说明</th>
<th style="text-align:left">例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">=</td>
<td style="text-align:center">等于</td>
<td style="text-align:left">a=b;  <br> a = x + 1 * 9; <br> if (a=b) then {...}</td>
</tr>
<tr>
<td style="text-align:center">==</td>
<td style="text-align:center">等于</td>
<td style="text-align:left">if (a==b) then {...}</td>
</tr>
<tr>
<td style="text-align:center">!=<br> &lt;&gt; <br></td>
<td style="text-align:center">不等于</td>
<td style="text-align:left">if (a!=b) then {...}<br> if (a&lt;&gt;b) then {...}</td>
</tr>
<tr>
<td style="text-align:center">&gt;= <br> &lt;=</td>
<td style="text-align:center">大于等于 <br> 小于等于</td>
<td style="text-align:left">if (a&gt;=b and a &lt;=1) then {...}</td>
</tr>
<tr>
<td style="text-align:center">and</td>
<td style="text-align:center">并且</td>
<td style="text-align:left">if (a==b and a =1) then {...}</td>
</tr>
<tr>
<td style="text-align:center">or</td>
<td style="text-align:center">或者</td>
<td style="text-align:left">if (a==b or a =1) then {...}</td>
</tr>
<tr>
<td style="text-align:center">not</td>
<td style="text-align:center">非</td>
<td style="text-align:left">if not(a==b or a =1) then {...}</td>
</tr>
<tr>
<td style="text-align:center">match</td>
<td style="text-align:center">包含</td>
<td style="text-align:left">if (x match("aaa")) then {...}</td>
</tr>
<tr>
<td style="text-align:center">between</td>
<td style="text-align:center">介于</td>
<td style="text-align:left">if (a between "1~10") then {...}</td>
</tr>
<tr>
<td style="text-align:center">+<br>-<br>*<br>/</td>
<td style="text-align:center">加<br>减<br>乘<br>除</td>
<td style="text-align:left">x = a + b * c / 100 - (5 - 1);</td>
</tr>
</tbody>
</table>
<p>4.6 <strong>条件表达式</strong></p>
<blockquote>
<p>目前只支持if和switch条件表达式。可任意嵌套使用。</p>
</blockquote>
<ul>
<li>脚本模式<br>
<img src="./assets/image/sys/ruleScriptMode.png" alt="逻辑编辑器条件表达式"></li>
</ul>
<pre data-role="codeBlock" data-info="text" class="language-text text"><code> if (a=b) then {
   ...
 }else{
    ...
 }
</code></pre><pre data-role="codeBlock" data-info="" class="language-text"><code>switch (__EMPTY_EXPRESSION__) {
  case (a=1)then{
     ...
  }
  case (a=2)then{
     ...
  }
  other{

  }

}

switch (str) {
  case ("1")then{
     ...
  }
  case ("2")then{
     ...
  }
  other{

  }

}
</code></pre><ul>
<li>图形模式</li>
</ul>
<p><img src="./assets/image/sys/ruleEditConditionalExpr.png" alt="逻辑编辑器条件表达式"></p>
<p>4.7 <strong>return 语法</strong></p>
<blockquote>
<p>return 只能用在条件程序体内。只支持两种return表达形式。 return 值|变量。</p>
</blockquote>
<pre data-role="codeBlock" data-info="js" class="language-javascript js"><code>declare a number<span class="token punctuation">;</span>
a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword control-flow keyword-if">if</span> <span class="token punctuation">(</span><span class="token spread operator">...</span><span class="token punctuation">)</span> then <span class="token punctuation">{</span>
   <span class="token keyword control-flow keyword-return">return</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword control-flow keyword-if">if</span> <span class="token punctuation">(</span><span class="token spread operator">...</span><span class="token punctuation">)</span> then <span class="token punctuation">{</span>
   <span class="token keyword control-flow keyword-return">return</span> a<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword control-flow keyword-if">if</span> <span class="token punctuation">(</span><span class="token spread operator">...</span><span class="token punctuation">)</span> then <span class="token punctuation">{</span>
   <span class="token keyword control-flow keyword-return">return</span> <span class="token string">"hello"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre><h4 id="5系统api">5.系统API </h4>
<h1 id="功能配置">功能配置 </h1>
<h2 id="架构">架构 </h2>
<p><img src="./assets/image/sys/jiagou1.png" alt="架构"></p>
<p><strong>注意：</strong> </p><div style="font:600 16px;color:#606266;">1.本系统采用组件式搭建功能，所有功能组件都需要先配置模板 ，再进行具体功能配置，  <a href="#tempConfig" id="temp1" onclick="lastClickedId = this.id" style="font-weight:600">如何配置模板</a>。<br>
2.新建功能入口：系统管理—系统功能<br>
3.功能搭建完成后，如果用户为非管理员角色用户，需在系统管理-权限中添加新建功能，如果系统管理中没有权限功能，请联系管理员为您添加权限。<br>
<a href="#add_permission" id="addPer2" onclick="lastClickedId = this.id" style="font-weight:600">如何增加权限</a><p></p>
</div>
<ul>
<li>
<p>点击查看各功能组件效果以及详细配置</p>
<table>
<thead>
<tr>
<th>组件名</th>
<th>点击查看组件效果</th>
<th>点击查看详细配置</th>
</tr>
</thead>
<tbody>
<tr>
<td>表格</td>
<td><a href="#effect_table" id="effect1">表格</a></td>
<td><div><a href="#table" id="click1" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>表单</td>
<td><a href="#effect_form" id="effect2">表单</a></td>
<td><div><a href="#form" id="click2" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>视图</td>
<td><a href="#effect_view" id="effect3">视图</a></td>
<td><div><a href="#view" id="click3" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>标签页</td>
<td><a href="#effect_tab" id="effect4">标签页</a></td>
<td><div><a href="#tab" id="click4" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>引用组件</td>
<td><a href="#effect_quote" id="effect5">引用组件</a></td>
<td><div><a href="#quote" id="click5" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>多表表单</td>
<td><a href="#effect_mform" id="effect6">多表表单</a></td>
<td><div><a href="#quote" id="click5" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>树状导航</td>
<td><a href="#effect_tree" id="effect7">树状导航</a></td>
<td><div><a href="#tree" id="click7" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>日期导航</td>
<td><a href="#effect_date" id="effect8">日期导航</a></td>
<td><div><a href="#date" id="click8" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>单据</td>
<td><a href="#effect_doc" id="effect9">单据</a></td>
<td><div><a href="#doc" id="click9" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>画布</td>
<td><a href="#effect_cavans" id="effect10">画布</a></td>
<td><div><a href="#cavans" id="click10" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
<tr>
<td>引用画布</td>
<td><a href="#effect_refcavans" id="effect11">引用画布</a></td>
<td><div><a href="#refcavans" id="click11" onclick="lastClickedId = this.id">详细配置</a></div></td>
</tr>
</tbody>
</table>
<p><a href="#effect1" id="effect_table">表格</a></p>
<p><img src="./assets/image/sys/effect_table.png" alt="表格"></p>
<p><a href="#effect2" id="effect_form">表单</a></p>
<p><img src="./assets/image/sys/effect_form.png" alt="表单"></p>
<p><a href="#effect3" id="effect_view">视图</a></p>
<p><img src="./assets/image/sys/effect_view.png" alt="表格"></p>
<p><a href="#effect4" id="effect_tab">标签页</a></p>
<p><img src="./assets/image/sys/effect_tab.png" alt="表格"></p>
<p><a href="#effect5" id="effect_quote">引用组件</a></p>
<p><img src="./assets/image/sys/ref7.png" alt="表格"></p>
<p><a href="#effect6" id="effect_mform">多表表单</a></p>
<p><img src="./assets/image/sys/effect_mform.png" alt="表格"></p>
<p><a href="#effect7" id="effect_tree">树状导航</a></p>
<p><img src="./assets/image/sys/tree%20(1).png" alt="表格"></p>
<p><a href="#effect8" id="effect_date">日期导航</a></p>
<p><img src="./assets/image/sys/dateNav%20(1).png" alt="表格"></p>
<p><a href="#effect9" id="effect_doc">单据</a></p>
<p><img src="./assets/image/sys/effect_doc.png" alt="表格"></p>
<p><a href="#effect10" id="effect_cavans">画布</a></p>
<p><img src="./assets/image/sys/effect_cavans.png" alt="表格"></p>
<p><a href="#effect11" id="effect_refcavans">引用画布</a></p>
<p><img src="./assets/image/sys/effect_refcavans.png" alt="表格"></p>
</li>
</ul>
<h2 id="模板配置">模板配置 </h2>
<h3 id="说明">说明 </h3>
<p><a id="tempConfig" href="">所有功能搭建前必须先配置模板，可选取已搭好的模板或新建自定义模板。</a></p>
<h3 id="模板搭建">模板搭建 </h3>
<p><img src="./assets/image/sys/temp.png" alt="模板"></p>
<p id="temp_back"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.左侧是已搭建好的模板，可拖到中心区域直接使用。<br>
2.菜单栏：<strong><a href="#addTemp">新增模板</a></strong>  ； 编辑模板  ；<strong><a href="#removeTemp">删除模板</a></strong> ；保存模板<br>
3.功能配置明细区</p>
</li>
</ul>
<h3 id="搭建步骤">搭建步骤 </h3>
  <p id="temp_back1"></p>
<p>第一步，进入系统管理中的系统功能，<strong><a href="#Temp_config1">详细操作</a></strong><br>
第二步，点新建功能或右键点击新增功能，<strong><a href="#Temp_config2">详细操作</a></strong><br>
第三步，拖拽左侧常用模板或新建模板，<strong><a href="#addTemp">新增模板操作说明</a></strong><br>
第四步，拖拽模板到中间区域后，点击中间下拉栏<br>
第五步，选择所需功能组件下拉  <strong><a href="#Temp_Example">详细操作</a></strong></p>
<ul>
<li>
<p><strong><a id="Temp_config1" href="#temp_back1">第一步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys%20(1).png" alt="新增"></p>
</li>
<li>
<p><strong><a id="Temp_config2" href="#temp_back1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys%20(11).png" alt="新增"></p>
</li>
<li>
<p><strong><a id="addTemp" href="#temp_back">新建配置模板</a></strong>：配置模板主要是针对没有预定义的模板进行增加、中途取消及删除。</p>
<ul>
<li>
<p>新增模板</p>
<p><img src="./assets/image/sys/template2.png" alt="新增"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击新增</p>
<p>2.出现单档模胚，中心远点右键，进行横纵向不断分解拆分</p>
<p>3.点击保存</p>
<p>4.左边模板会新增一个配置的新模板</p>
<p><strong>注：</strong> 每一块模板可根据需求拉到合适大小</p>
</li>
</ul>
</li>
<li>
<p>中途取消未新建完成的模板</p>
<p><img src="./assets/image/sys/template1.png" alt="如何取消未新建完成的模板"></p>
</li>
<li>
<p><strong><a id="removeTemp" href="#temp_back">删除模板</a></strong>:如果新建未完成的模板不想要了，你可以点保存后选择取消</p>
<p><img src="./assets/image/sys/template3.png" alt="删除"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.方式一，选中模板，模板框变色后删除<br>
2.方式二，直接选中右键删除</p>
</li>
</ul>
<p><strong><a id="Temp_Example" href="#temp_back1">第五步，详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys19.png" alt="第二步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.拖拽左侧常用模板</p>
<p>2.点击中间下拉栏</p>
<p>3.选择所需功能组件下拉</p>
<h2 id="功能搭建">功能搭建 </h2>
<div style="font:600 20px;color:#606266;">1.本系统采用组件式搭建功能，所有功能组件都需要先 <a href="#tempConfig" id="temp2" onclick="lastClickedId = this.id" style="font-weight:600">配置模板</a>，再进行具体功能配置
2.新建功能入口：系统管理—系统功能   
3.功能搭建完成后，如果用户为非管理员角色用户，需在系统管理-权限中添加新建功能，如果系统管理中没有权限功能，请联系管理员为您添加权限。 
<a href="#add_permission" id="addPer2" onclick="lastClickedId = this.id" style="font-weight:600">如何增加权限</a>
</div>
<p><img src="./assets/image/sys/sys%20(1).png" alt="新增"><br>
<img src="./assets/image/sys/sys%20(11).png" alt="新增"></p>
<br>
<p><a id="table" href="">点击返回</a></p>
<h3 id="表格配置">表格配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;表格&gt;组件属于基础数据类,可设为主功能组件单独显示。</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>1.对原始数据展示与呈现<br>
2.使用表格强大的筛选和搜索功能，用户可以根据需要快速定位到特定数据<br>
3.数据整理与分析，对数据进行排序，分组与计算，导出或导入</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
</ul>
<p><img src="./assets/image/sys/config1.png" alt="配置图"></p>
<p id="table_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，选好模板，添加&lt;表格&gt;组件。</p>
<p>第二步，点击&lt;表格&gt;，将&lt;表格&gt;设为主功能。<strong><a href="#table_config1">详细操作</a></strong></p>
<p>第三步，点击组件明细，其中功能名为必填项且必须遵循国际化语言规则配置，其它功能为可选项，根据需求选择。<strong><a href="#table_detail">组件明细配置项</a></strong></p>
<p>第四步，配置字段,点击选取字段，为该功能添加字段。<strong><a href="#table_field">详细操作</a></strong></p>
<p>第五步，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。 <strong><a href="#table_config2">详细操作</a></strong></p>
<p>第六步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#table_config3">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.一定要勾选主功能，方可选菜单<br>
2.功能名严格按照国际化规则填写<br>
3.功能名配置完成后方可选取字段</p>
</li>
</ul>
<p><strong><a href="#table_back" id="table_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;表格&gt;</p>
<p>2.勾选主功能</p>
<p><strong><a href="#table_back" id="table_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名 ：需按照 <strong><a href="#global" id="g3" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>组件关联：<strong><a href="#association" id="a1" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>QBE查询：<strong><a href="#QBEsearch" id="Q1" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#import" id="IM1" onclick="lastClickedId = this.id">导入</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导入Excel表同步生成页面表格</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#export" id="EX1" onclick="lastClickedId = this.id">导出</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导出页面表格生成Excel表格</td>
</tr>
<tr>
<td style="text-align:center">全局搜索</td>
<td style="text-align:center">是</td>
<td style="text-align:center">筛选数据</td>
</tr>
<tr>
<td style="text-align:center">刷新</td>
<td style="text-align:center">是</td>
<td style="text-align:center">更新页面内容</td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打印</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">查找</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">粘贴列</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>表格数据处理</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">可编辑</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center"><strong><a id="loading1" href="#autoload" onclick="lastClickedId = this.id">自动加载</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">主表开启，主表关联下的从表关闭</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>自定义按钮，详细配置查看 <strong><a href="#anniu" id="an1" onclick="lastClickedId = this.id">按钮配置</a></strong></p>
</li>
<li>
<p>事件，详细查看 <strong><a href="#event" id="e1" onclick="lastClickedId = this.id">事件设置</a></strong></p>
</li>
<li>
<p>弹窗编辑：详细查看 <strong><a href="#edit" id="edit1" onclick="lastClickedId = this.id">弹窗编辑</a></strong></p>
</li>
<li>
<p>表格模式： 可选择画布模式，表单模式，单行编辑模式，勾选默认按钮，则功能打开时按照该默认模式显示</p>
</li>
<li>
<p><strong>快捷键切换方式</strong></p>
</li>
<li>
<p>表格切换表单：shift + f</p>
</li>
<li>
<p>表格切换画布：shift + g</p>
</li>
</ul>
<p><strong><a href="#table_back" id="table_field">第四步配置字段</a></strong></p>
<ul>
<li>
<p>根据业务需求选择字段，注意配置完功能名后方可选取字段。</p>
<p><img src="./assets/image/sys/sys20.png" alt="第六步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.配置完功能名后可点击选取，弹出字段库查询组件</p>
<p>2.可以搜索关键字查找要选取的字段，如果没有想要的字段，可以点击新增添加新的字段</p>
<p>3.选中字段，可选中多个，如果单个字段双击即可选入</p>
<p>4.点击确定，字段选取成功</p>
<p>5.可调整字段顺序，或者删除字段</p>
<p>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT1" onclick="lastClickedId = this.id">字段详细配置</a>栏</p>
</li>
</ul>
<p><strong><a href="#table_back" id="table_config2">第五步详细操作</a></strong><br>
先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#table_back" id="table_config3">第六步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
<br> 
<br> 
<p><a id="form" href="">点击返回</a></p>
<h3 id="表单配置">表单配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;表单&gt;组件属于基础数据类,可设为主功能单独显示。</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>数据收集与整合，业务流程管理。</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
</ul>
<p><img src="./assets/image/sys/config2.png" alt="配置图"></p>
<p id="form_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，选好模板，添加&lt;表单&gt;组件。</p>
<p>第二步，点击&lt;表单&gt;，将&lt;表单&gt;设为主功能。<strong><a href="#form_config1">详细操作</a></strong></p>
<p>第三步，点击组件明细，其中功能名为必填项且必须遵循国际化语言规则配置，其它功能为可选项，根据需求选择。<strong><a href="#form_detail">组件明细配置项</a></strong></p>
<p>第四步，配置字段，点击选取字段，为该功能添加字段。<strong><a href="#form_field">详细操作</a></strong></p>
<p>第五步，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。 <strong><a href="#form_config2">详细操作</a></strong></p>
<p>第六步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#form_config3">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.一定要勾选主功能，方可选菜单<br>
2.功能名严格按照国际化规则填写<br>
3.功能名配置完成后方可选取字段</p>
</li>
</ul>
<p><strong><a href="#form_back" id="form_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;表单&gt;</p>
<p>2.勾选主功能</p>
<ul>
<li>
<p><strong><a href="#form_back" id="form_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  ：需按照 <strong><a href="#global" id="g4" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>分组配置:详细查看 <strong><a href="#group" id="group1" onclick="lastClickedId = this.id">分组配置</a></strong></p>
</li>
<li>
<p>组件关联：<strong><a href="#association" id="a2" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#import" id="IM2" onclick="lastClickedId = this.id">导入</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导入Excel表同步生成页面表格</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#export" id="EX2" onclick="lastClickedId = this.id">导出</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导出页面表格生成Excel表格</td>
</tr>
<tr>
<td style="text-align:center">初页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">末页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">下一页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">上一页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">查找</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打印</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">送审</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核状态</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>自定义按钮，详细配置查看<a href="#anniu" id="an2" onclick="lastClickedId = this.id">按钮配置</a></p>
</li>
<li>
<p>事件，详细查看<a href="#event" id="e2" onclick="lastClickedId = this.id">事件设置</a></p>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#form_back" id="form_field">第四步配置字段</a></strong></p>
<ul>
<li>
<p>根据业务需求选择字段，注意配置完功能名后方可选取字段。</p>
<p><img src="./assets/image/sys/sys20.png" alt="第六步"><br>
<img src="./assets/image/sys/form5.png" alt="说明"></p>
</li>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.配置完功能名后可点击选取，弹出字段库查询组件</p>
<p>2.可以搜索关键字查找要选取的字段，如果没有想要的字段，可以点击新增添加新的字段</p>
<p>3.选中字段，可选中多个，如果单个字段双击即可选入</p>
<p>4.点击确定，字段选取成功</p>
<p>5.可调整字段顺序，或者删除字段</p>
<p>注：如果设置了多个表头分组，需要为每一&lt;表头&gt;添加字段。</p>
<p>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT2" onclick="lastClickedId = this.id">字段详细配置</a>栏</p>
</li>
</ul>
<p><strong><a href="#form_back" id="form_config2">第五步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#form_back" id="form_config3">第六步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br> 
<p><a id="view" href="">点击返回</a></p>
<h3 id="视图配置">视图配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>1.&lt;视图&gt;组件属于基础数据类，搭建时需与 <strong>数据库</strong> 组合使用，旨在系统中提供视图显示数据库表</p>
<p>2.&lt;视图&gt;（view）是一种虚拟存在的表，视图中的数据并不在数据库中实际存在，视图中的数据来自定义视图时select查询的表，并且视图是动态生成的</p>
<p>3.&lt;视图&gt;数据无法修改，因此不建议将&lt;视图&gt;作为子表做组件关联。</p>
<ul>
<li><strong>使用场景</strong></li>
</ul>
<p>1.计算列的需要<br>
2.不同表字段聚合<br>
3.安全性需要(只能查询，无法增删改数据)</p>
<ul>
<li><strong>搭建</strong></li>
</ul>
<p><img src="./assets/image/sys/config3.png" alt="配置图"></p>
<p id="view_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，在数据库中新建一张表，表必须有id、 _file_info_id、<em>sort</em> 、title这四个字段。<strong><a href="#view_table">详细操作</a></strong></p>
<p>第二步，选好模板，添加&lt;视图&gt;组件。</p>
<p>第三步，点击&lt;视图&gt;，将&lt;视图&gt;设置为主功能。<strong><a href="#view_config1">详细操作</a></strong></p>
<p>第四步，点击&lt;视图&gt;配置明细，注意&lt;视图&gt;功能名要对应数据库表名，<strong><a href="#view_detail">组件明细配置项</a></strong></p>
<p>第五步，点击同步字段，自动同步数据库中对应表的字段。<strong><a href="#view_field">详细操作</a></strong></p>
<p>第六步，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。<strong><a href="#view_config2">详细操作</a></strong></p>
<p>第七步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#view_config3">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.数据表必须有id、 _file_info_id、<em>sort</em> 、title这四个字段<br>
2.一定要勾选主功能，方可选菜单<br>
3.功能名严格按照国际化规则填写，且要与数据库表名相同<br>
4.功能名配置完成后方可同步字段<br>
5.无法对&lt;视图&gt;组件数据进行修改操作</p>
</li>
<li>
<p><strong><a href="#view_back" id="view_table">第一步详细操作</a></strong></p>
<p><img src="./assets/image/sys/view9.png" alt="第一步"></p>
<p><strong>数据库表必须有id、 _file_info_id、 <em>sort</em> 、title这四个字段</strong></p>
</li>
</ul>
<p><strong><a href="#view_back" id="view_config1">第三步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;视图&gt;</p>
<p>2.勾选主功能</p>
<ul>
<li>
<p><strong><a href="#view_back" id="view_detail">第四步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  ：注意和<strong>数据库表名</strong> 相同，需按照 <strong><a href="#global" id="g5" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>组件关联：<strong><a href="#association" id="a3" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#export" id="EX3" onclick="lastClickedId = this.id">导出</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导出页面表格生成Excel表格</td>
</tr>
<tr>
<td style="text-align:center">全局搜索</td>
<td style="text-align:center">是</td>
<td style="text-align:center">筛选数据</td>
</tr>
<tr>
<td style="text-align:center">刷新</td>
<td style="text-align:center">是</td>
<td style="text-align:center">更新页面内容</td>
</tr>
<tr>
<td style="text-align:center">打印</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">查找</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">收起全部</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>表格数据处理</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">可编辑</td>
<td style="text-align:center">否</td>
<td style="text-align:center">视图数据由数据库查找而来，不可修改</td>
</tr>
<tr>
<td style="text-align:center"><strong><a id="loading1" href="#autoload" onclick="lastClickedId = this.id">自动加载</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">主表开启，主表关联下的从表关闭</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
<li>
<p><strong><a href="#view_back" id="view_field">第五步同步字段</a></strong></p>
<p>点击同步字段，自动同步数据库中对应表的字段</p>
<p><img src="./assets/image/sys/view11.png" alt="第八步"></p>
<p>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT3" onclick="lastClickedId = this.id">字段详细配置</a>栏</p>
</li>
</ul>
<p><strong><a href="#view_back" id="view_config2">详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#view_back" id="view_config3">第六步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br> 
<p><a id="tab" href="">点击返回</a></p>
<h3 id="标签页配置">标签页配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;标签页&gt;组件属于容器类组件，不可单独设为主功能显示，在&lt;标签页&gt;容器中放置<strong>其他功能组件</strong>时，需要将&lt;表格&gt;设置为主功能</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>多功能在同一页面切换查看</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
<li>
<p>步骤</p>
<p id="tab_back"></p>
<p>第一步，选好模板，添加&lt;标签页&gt;组件。</p>
<p>第二步，如果需要在标签页中存放多个组件，选中蓝色区域鼠标右键进行拆分，可再次拖拽&lt;标签页&gt;组件放入，完成嵌套。 <strong><a href="#tab_config1">详细操作</a></strong></p>
<p>第三步，更改标签名，拖拽<strong>所需组件</strong>到标签页中。 <strong><a href="#tab_config">详细操作</a></strong></p>
<p>第四步，对&lt;标签页&gt;内组件进行组件明细，字段，菜单配置，具体可参考<strong>其他功能组件</strong>配置</p>
</li>
<li>
<p>注意事项</p>
<p>1.&lt;标签页&gt;容器中必须将&lt;表格&gt;作主功能组件</p>
</li>
</ul>
<p><strong><a href="#tab_back" id="tab_config1">第二步详细配置</a></strong></p>
<ul>
<li>
<p>选中蓝色区域鼠标右键进行拆分，可横向拆分或纵向拆分。</p>
<p><img src="./assets/image/sys/tab_config1.png" alt="第二步"></p>
</li>
<li>
<p>可再次拖拽&lt;标签页&gt;组件至空白区域，对标签页再次右键拆分。</p>
<p><img src="./assets/image/sys/tab_config2.png" alt="第二步"></p>
</li>
</ul>
<br>
<p><strong><a href="#tab_back" id="tab_config">第三步详细配置</a></strong></p>
<ul>
<li>
<p>更改标签名，如果有标签选择再点+新增，所需配置组件，同样左侧拉取模板，顶部拉取组件，进行配置。</p>
<p><img src="./assets/image/sys/tab1.png" alt="第二步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击标签名进行修改<br>
2.点击新增标签页<br>
3.对该标签页选择组件<br>
4.勾选主功能后，方可选择菜单栏,注意标签页内的组件才可以勾选为主功能，空白标签页不能作为主功能</p>
</li>
</ul>
<br>
<p><a id="quote" href="">点击返回</a></p>
<h3 id="引用组件配置">引用组件配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>1.虚拟的容器功能,它只接受引用主功能&lt;表格&gt;组件，引用组件只能是最下层组件。<br>
2.引用组件无法修改引用的表格配置，只能对原表进行完整展示。<br>
3.在引用组件中增删改，原表也会随之变化。<br>
4.引用组件作为容器使用可存储多个表格，点击侧边栏进行切换。</p>
<ul>
<li>
<p><strong>使用场景</strong><br>
新建功能时，用户希望使用系统中已建好的表格做从表使用，与新建主表进行关联，引用组件作为一个容器，存储系统中已建好的表格并展示</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
</ul>
<p><img src="./assets/image/sys/config4.png" alt="配置图"></p>
<p id="quote_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，配置好模板后，添加&lt;引用组件&gt;与&lt;表格&gt;组件。</p>
<p>第二步，将&lt;表格&gt;组件设置为主功能。<strong><a href="#quote_config2">详细操作</a></strong></p>
<p>第三步，点击&lt;表格&gt;，配置组件明细，其中功能名与组件关联是必须项，组件关联中将&lt;表格&gt;id字段与&lt;引用组件&gt;master_bill_id字段(需手动填写)对应关联。<strong><a href="#quote_ass">组件关联</a></strong></p>
<p>第四步，&lt;表格&gt;配置字段时，必须勾选描述字段，本例选取标题字段作为描述字段 <strong><a href="#quote_config3">详细操作</a></strong></p>
<p>第五步，主表配置完毕，点击&lt;引用组件&gt;进行配置明细，在引用功能中添加<strong>需要引用的功能组件</strong>，可添加多个。<strong><a href="#quote_config1">详细操作</a></strong></p>
<p>第六步，点击保存后刷新缓存，进入系统功能界面找到<strong>要引用的表格组件</strong>，然后右键选择修改功能 <strong><a href="#quote_config4">详细操作</a></strong></p>
<p>第七步，检查<strong>要引用的表格组件</strong>是否有master_bill_id字段，若没有，选取master_bill_id主单id，然后在master_bill_id字段多对一设置中选取配置好的&lt;引用组件&gt; <strong><a href="#quote_config5">详细操作</a></strong></p>
<p>第八步，点击保存后，点击刷新缓存，再刷新浏览器，功能配置完成。<strong><a href="#quote_effect">详细操作</a></strong></p>
</li>
<li>
<p>功能显示说明</p>
<p>主表在配置中只需要关联引用组件，引用组件容器内的所有表格自动与主表进行关联，因此当主表改变行选择状态时，从表中的子表自动切换；用户可点击左边侧边栏手动切换引用组件中的表格功能。</p>
<p><img src="./assets/image/sys/quote_active3.png" alt="引用组件效果"><br>
<img src="./assets/image/sys/quote_active2.png" alt="引用组件效果"><br>
<img src="./assets/image/sys/quote_active1.png" alt="引用组件效果"></p>
</li>
<li>
<p>注意事项</p>
<p>1.&lt;引用组件&gt;容器不可单独存在，需与主表关联<br>
2.<strong>要引用的表格组件</strong>master_bill_id字段多对一中选择&lt;引用组件&gt;的主表</p>
</li>
<li>
<p>组件明细配置项</p>
<ul>
<li>功能名：系统自动配置</li>
<li>功能注释：无需填写</li>
<li>引用功能：引用现有功能组件</li>
</ul>
</li>
</ul>
<p><strong><a href="#quote_back" id="quote_config2">第二步详细操作</a></strong></p>
<p>点击&lt;表格&gt;组件，勾选主功能，勾选主功能之后才能选取字段和配置菜单。</p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;表格&gt;</p>
<p>2.勾选主功能</p>
<p><strong><a href="#quote_back" id="quote_ass">第三步组件关联</a></strong></p>
<ul>
<li>
<p>表格的详细配置可参考<a href="#table" id="t1" onclick="lastClickedId = this.id">表格配置</a>，本例主要说明表格与引用组件关联需要注意的细节，在①表格中配置组件关联时关联引用组件，并手动输入关联表的master_bill_id。</p>
<p><img src="./assets/image/sys/ref2.png" alt="第三步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.组件关联需在父组件中进行关联，此处①表格关联②引用组件</p>
<p>2.id为①表格的自身id</p>
<p>3.无法选择目标字段，需手动输入目标字段</p>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#quote_back" id="quote_config3">第四步详细操作</a></strong></p>
<p><img src="./assets/image/sys/ref4.jpg" alt="第四步"></p>
<ul>
<li><strong>说明</strong><br>
<strong>描述字段</strong> 经常在主从表中搭配<strong>多对一</strong>使用，主表将标题设置为描述字段，然后将副表的master_bill_id字段多对一选择主表，这时副表的master_bill_id字段内容为主表标题字段的内容。</li>
</ul>
<p><strong><a href="#quote_back" id="quote_config1">第五步详细操作</a></strong></p>
<p><img src="./assets/image/sys/ref3.png" alt="第四步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong><br>
1.进入②引用组件功能配置</p>
<p>2.功能名自动添加，无需手动添加</p>
<p>3.引用功能配置需要关联的&lt;表格&gt;</p>
<p>4.点击添加&lt;表格&gt;，可添加多个</p>
<p>5.点击搜索对应表，双击选入</p>
<p>6.点击删除功能组件</p>
</li>
</ul>
<p><strong><a href="#quote_back" id="quote_config4">第六步详细操作</a></strong></p>
<p><img src="./assets/image/sys/ref6.png" alt="第四步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong><br>
1.在系统管理导航页面找到系统功能点击进入</p>
<p>2.搜索关联功能组件</p>
<p>3.引用功能组件</p>
<p>4.点击选中<strong>引用功能组件</strong></p>
<p>5.右键单击修改功能</p>
</li>
</ul>
<p><strong><a href="#quote_back" id="quote_config5">第七步详细操作</a></strong></p>
<p><img src="./assets/image/sys/ref5.png" alt="第四步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong><br>
1.检查<strong>引入功能组件</strong>是否有主单id字段，若没有，选取master_bill_id主单id，并勾选值不为空，是否必须，禁止输入。</p>
<p>2.选取保存的&lt;引用组件&gt;</p>
</li>
</ul>
<p><strong><a href="#quote_back" id="quote_effect">第八步详细操作</a></strong></p>
<p>点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第八步"></p>
<p><a id="mform" href="">点击返回</a></p>
<h3 id="多表表单配置">多表表单配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;多表表单&gt;组件属于容器类组件，可作为主功能单独显示，通过&lt;多表表单&gt;将多个&lt;表格&gt;组件的数据以&lt;表单&gt;形式展现</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>多张表格数据使用表单形式进行增删改。</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
</ul>
<p><img src="./assets/image/sys/config5.png" alt="配置图"></p>
<p id="mform_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，选好模板，添加&lt;多表表单&gt;组件。</p>
<p>第二步，点击&lt;多表表单&gt;，将&lt;多表表单&gt;设置为主功能 <strong><a href="#mform_config1">详细操作</a></strong></p>
<p>第三步，进入&lt;多表表单&gt;组件明细，其中功能名与关联表格为必填项，功能名填写需遵守国际化规则，添加关联表格时，可关联多个&lt;表格&gt;。<strong><a href="#mform_detail">组件明细配置项</a></strong></p>
<p>第四步，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。<strong><a href="#mform_config2">详细操作</a></strong></p>
<p>第五步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#mform_config3">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.一定要勾选主功能，方可选菜单<br>
2.功能名严格按照国际化规则填写</p>
</li>
</ul>
<p><strong><a href="#view_back" id="mform_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;多表表单&gt;</p>
<p>2.勾选主功能</p>
<ul>
<li>
<p><strong><a href="#mform_back" id="mform_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  :需按照 <strong><a href="#global" id="g6" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>关联表格：<strong><a href="#assTable" id="ass1" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>表单样式：设置字段显示宽度，可选择百分比或者像素宽度的方式。</p>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">刷新</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#mform_back" id="mform_config2">第四步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#mform_back" id="mform_config3">第六步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br> 
<h3 id="引用实表配置">引用实表配置 </h3>
<ul>
<li>
<p><strong>说明</strong></p>
<p>&lt;引用实表&gt;组件属于容器类,原理是引用系统中已建好的表格，抓取原表的字段配置，生成前端展示新表格，不会在数据库重新建表，因此&lt;引用实表&gt;与原表共用一张物理表，当用户在&lt;引用实表&gt;中修改数据时，原表的数据同样随之修改，在&lt;引用实表&gt;功能配置中可对字段删除或者设置别名，不可修改字段的多对一，下拉选项等设置。</p>
</li>
<li>
<p><strong>使用场景</strong></p>
<p>1.新建功能时，用户希望直接使用系统中某一已建好的表格组件，并将该表格作为主功能，与从表做组件关联；<br>
2.用户希望引用系统中已建好的表格，但又不希望展示该表格全部字段内容，使用&lt;引用实表&gt;对原表实现阉割展示；<br>
3.用户操作同一张物理表，使用不同前端config展示。</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
</ul>
<p id="real_table_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，选好模板，添加&lt;引用实表&gt;组件与&lt;表格&gt;。</p>
<p>第二步，点击&lt;引用实表&gt;，将&lt;引用实表&gt;设为主功能。<strong><a href="#realTable_config1">详细操作</a></strong></p>
<p>第三步，点击&lt;引用实表&gt;配置明细，功能名为必须项，其他根据需求选择具体配置项，功能名必须遵循国际化语言规则填写。<strong><a href="#realTable_detail">组件明细配置项</a></strong></p>
<p>第四步，配置字段,引用表格填入需要引用的实表&lt;表格&gt;组件名，点击同步字段按钮,自动添加该&lt;表格&gt;组件的字段。<strong><a href="#realTable_field">详细操作</a></strong></p>
<p>第五步，点击&lt;表格&gt;，&lt;表格&gt;用作&lt;引用实表&gt;关联下的子表，需在组件明细中关闭自动加载，并在配置&lt;表格&gt;多对一字段时，必须选择引用的实表&lt;表格&gt;组件。<strong><a href="#realTable_config3">详细操作</a></strong></p>
<p>第六步，点击&lt;引用实表&gt;，配置组件明细，与&lt;表格&gt;进行组件关联。 <strong><a href="#realTable_config4">详细操作</a></strong></p>
<p>第七步，配置菜单，先点击选择导航，再点击选择分组，确定导航和分组，然后点击保存按钮。<strong><a href="#realTable_config2">详细操作</a></strong></p>
<p>第八步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#realTable_config5">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.一定要勾选主功能，方可选菜单<br>
2.功能名严格按照国际化规则填写<br>
3.功能名配置完成后方可选取字段<br>
4.从表配置多对一时，需选择引用的实表<br>
5.&lt;引用实表&gt;与原表id内容一致，修改&lt;引用实表&gt;的同时也会修改原表内容。</p>
</li>
</ul>
<p><strong><a href="#real_table_back" id="realTable_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;表格&gt;</p>
<p>2.勾选主功能</p>
<ul>
<li>
<p><strong><a href="#real_table_back" id="realTable_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名 ：需按照 <strong><a href="#global" id="g10" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>组件关联：<strong><a href="#association" id="a5" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>QBE查询：<strong><a href="#QBEsearch" id="Q2" onclick="lastClickedId = this.id">详细配置</a></strong></p>
</li>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示分页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#import" id="IM5" onclick="lastClickedId = this.id">导入</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导入Excel表同步生成页面表格</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#export" id="EX5" onclick="lastClickedId = this.id">导出</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导出页面表格生成Excel表格</td>
</tr>
<tr>
<td style="text-align:center">全局搜索</td>
<td style="text-align:center">是</td>
<td style="text-align:center">筛选数据</td>
</tr>
<tr>
<td style="text-align:center">刷新</td>
<td style="text-align:center">是</td>
<td style="text-align:center">更新页面内容</td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打印</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">查找</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">粘贴列</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>表格数据处理</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">可编辑</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center"><strong><a id="loading1" href="#autoload" onclick="lastClickedId = this.id">自动加载</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">主表开启，主表关联下的从表关闭</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>自定义按钮，详细配置查看 <strong><a href="#anniu" id="an5" onclick="lastClickedId = this.id">按钮配置</a></strong></p>
</li>
<li>
<p>事件，详细查看 <strong><a href="#event" id="e3" onclick="lastClickedId = this.id">事件设置</a></strong></p>
</li>
<li>
<p>弹窗编辑：详细查看 <strong><a href="#edit" id="edit2" onclick="lastClickedId = this.id">弹窗编辑</a></strong></p>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#real_table_back" id="realTable_field">第四步配置字段</a></strong></p>
<ul>
<li>
<p>引用表格点击放大镜按钮选择引用的实表&lt;表格&gt;组件名。</p>
<p><img src="./assets/image/sys/realTable%20(2).png" alt="第六步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击引用表格放大镜按钮，打开系统功能查询窗口；</p>
<p>2.搜索关键字查找要选取的&lt;表格&gt;组件，双击选入。</p>
</li>
<li>
<p>点击同步字段按钮，自动同步引用的实表&lt;表格&gt;组件字段</p>
<p><img src="./assets/image/sys/realTable%20(4).png" alt="第六步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.点击同步字段按钮，自动同步引用的实表&lt;表格&gt;组件字段</p>
<p>2.选中字段，可删除字段或移动字段位置，但不可新增字段。</p>
<p>3.可对字段作详细功能配置，但不可设置描述字段功能，描述字段必须在引用的实表&lt;表格&gt;组件中配置。</p>
</li>
</ul>
<p>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT6" onclick="lastClickedId = this.id">字段详细配置</a>栏</p>
</li>
</ul>
<p><strong><a href="#real_table_back" id="realTable_config3">第五步详细操作</a></strong></p>
<ul>
<li>
<p>点击&lt;表格&gt;，配置多对一字段时，必须选择引用的实表&lt;表格&gt;</p>
<p><img src="./assets/image/sys/realTable%20(1).png" alt="第三步"></p>
</li>
<li>
<p>选择的表类型为"表"，本例中的&lt;引用实表&gt;表类型为"虚拟表"<br>
<img src="./assets/image/sys/realTable%20(6).png" alt="第三步"></p>
</li>
</ul>
<p><strong><a href="#real_table_back" id="realTable_config4">第六步详细操作</a></strong></p>
<ul>
<li>
<p>点击&lt;引用实表&gt;，组件配置明细中与&lt;表格&gt;进行组件关联</p>
<p><img src="./assets/image/sys/realTable%20(5).png" alt="第三步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.对应&lt;表格&gt;组件</p>
<p>2.对应&lt;引用实表&gt;的id</p>
<p>3.对应&lt;表格&gt;的mater_bill_id</p>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#real_table_back" id="realTable_config2">第七步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#real_table_back" id="realTable_config5">第八步详细操作</a></strong></p>
<p>点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
<p>&lt;引用实表&gt;与原表id字段内容一致，修改&lt;引用实表&gt;的同时也会改变原表。<br>
<img src="./assets/image/sys/realTable%20(3).png" alt="第三步"></p>
 <br> 
<h3 id="报表图表配置">报表图表配置 </h3>
<ul>
<li>
<p><strong>说明</strong></p>
<p>&lt;报表图表&gt;组件属于容器类，用来展示制作好的图表，可以作为主功能单独展示或者作为副功能与主表进行组件关联展示，实现主表一条数据对应一张图表；由于&lt;报表图表&gt;组件本身没有字段，所以无法作为主功能去关联副功能。</p>
</li>
<li>
<p><strong>使用场景</strong><br>
用户在报表设计中制作好图表，并将制作好的图表编码保存到打印配置中，在功能中展示已建好的图表。</p>
</li>
</ul>
<p><strong>搭建</strong></p>
<p id="report_forms_back"></p>
<ul>
<li>
<p>步骤</p>
<p>第一步，选好模板，添加&lt;报表图表&gt;组件与&lt;表格&gt;。</p>
<p>第二步，配置&lt;表格&gt;，将&lt;表格&gt;设为主功能；进入字段，添加f_code字段，f_code字段配置勾选是否必须，值不为空；进入组件明细，与&lt;报表图表&gt;做组件关联，关联字段都选择f_code。   <strong><a href="#report_config1">详细操作</a></strong></p>
<p>第三步，配置&lt;报表图表&gt;，进入组件明细，功能名与报表图表编码为必须项，其它根据需求选择   <strong><a href="#report_config2">详细操作</a></strong></p>
<p>第四步，点击&lt;表格&gt;配置菜单，先点击选择导航，再点击选择分组，确定导航和分组，然后点击保存按钮。  <strong><a href="#report_config3">详细操作</a></strong></p>
<p>第五步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#report_config4">详细操作</a></strong></p>
</li>
<li>
<p><strong>注意事项</strong></p>
<p>1.&lt;报表图表&gt;组件必须选择报表图表编码<br>
2.功能名严格按照国际化规范填写。</p>
</li>
</ul>
<p><strong><a href="#report_forms_back" id="report_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/report_table1.png" alt="第一步"><br>
<img src="./assets/image/sys/report_table2.png" alt="第二步"></p>
<p><strong><a href="#report_forms_back" id="report_config2">第三步详细操作</a></strong></p>
<p><img src="./assets/image/sys/report_table3.png" alt="第三步"><br>
<img src="./assets/image/sys/report_table4.png" alt="第三步"></p>
<p><strong><a href="#report_forms_back" id="report_config3">第四步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#report_forms_back" id="report_config4">第五步详细操作</a></strong></p>
<p>点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
<p><a id="tree" href="">点击返回</a></p>
<h3 id="树状表格配置">树状表格配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<blockquote>
<p>&lt;树状表格&gt;组件可以配置三种导航模式，它通常和&lt;基础表格&gt;组合使用，通过导航可以快速定位表格数据。</p>
<ul>
<li>
<p id="back1"></p>
</li>
<li>
<p>在功能配置中选取一个目的表格字段来去重来动态生成导航列表，它的导航树只有一层。<strong><a href="#fun_setup_treegrid_nav3">导航模式一</a></strong></p>
</li>
<li>
<p>当一个表内有父子关系字段时，可通过关联父ID的方式来形成关系树导航。它的导航树会有N层。<strong><a href="#fun_setup_treegrid_nav2">导航模式二</a></strong></p>
</li>
<li>
<p>数据表之间关联导航。 <strong><a href="#fun_setup_treegrid_nav1">导航模式三</a></strong></p>
</li>
</ul>
</blockquote>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>表格中存在大量原始数据，内容繁杂难以定位到特殊数据，树状表根据数据中的分类字段生成一张虚拟表对原始数据进行分类定位。</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
<li>
<p>步骤</p>
<ul>
<li>
<p><strong><a id="fun_setup_treegrid_nav3" href="#back2">导航模式一</a></strong></p>
<p>第一步，配置好模板后，添加&lt;树状表格&gt;与&lt;表格&gt;组件 。</p>
<p>第二步，点击&lt;表格&gt;，先将&lt;表格&gt;设置为主功能，再点击组件明细，功能名为必须项，再点击字段，字段必须配置<strong>分类字段</strong>来去重，最后选择菜单与分组后点击保存。<strong><a href="#nav3_config1">详细操作</a></strong></p>
<p>第三步，进入已配置好的&lt;表格&gt;页面，手动新增或者导入Excel数据。<strong><a href="#nav3_config2">详细操作</a></strong></p>
<p>第四步，再次进入功能配置，点击&lt;树状表格&gt;配置字段，选取来源表&lt;表格&gt;，选取来源字段——分类字段，将分类字段设为主段，<br>
<strong><a href="#nav3_config4">详细操作</a></strong></p>
<p>第五步，点击&lt;树状表格&gt;的组件明细，将&lt;树状表格&gt;分类字段与&lt;表格&gt;分类字段对应关联，点击保存后刷新缓存，再刷新浏览器。 <strong><a href="#nav3_config3">详细操作</a></strong></p>
</li>
</ul>
</li>
</ul>
<br>
<br>
<ul>
<li>
<p><strong><a id="fun_setup_treegrid_nav2" href="#back1">导航模式二</a></strong></p>
<p>第一步，配置好模板后，添加&lt;树状表格&gt;与&lt;表格&gt;组件 。</p>
<p>第二步，点击&lt;表格&gt;，先将&lt;表格&gt;设置为主功能，再点击组件明细，功能名为必须项，再点击字段，字段必须配置描述字段，父id分类字段，最后选择菜单与分组后点击保存。<strong><a href="#nav2_config1">详细操作</a></strong></p>
<p>第三步，再次进入&lt;表格&gt;功能配置，将父id字段设置多对一对应该&lt;表格&gt;的描述字段（多对一对应自己）。</p>
<p>第四步，进入已配置好的&lt;表格&gt;页面，依次填写，填写时注意id与父id之间的对应关系。<strong><a href="#nav2_config2">详细操作</a></strong></p>
<p>第五步，&lt;树状表格&gt;配置字段，选取来源表&lt;表格&gt;，选取来源字段<strong>描述字段</strong>与<strong>父ID</strong>字段，将描述字段设为主段，父ID字段设为子段，并勾选显示，保存后刷新。 <strong><a href="#nav2_config4">详细操作</a></strong></p>
<p>第六步，进入&lt;树状表格&gt;功能面板，点击&lt;树状表格&gt;配置明细，将&lt;树状表格&gt;id字段与&lt;表格&gt;p_id字段对应关联。 <strong><a href="#nav2_config3">详细操作</a></strong></p>
</li>
</ul>
<br>
<br>
<ul>
<li>
<p><strong><a id="fun_setup_treegrid_nav1" href="#back1">导航模式三</a></strong></p>
<p>第一步，新建一份&lt;基础表格&gt;，为树状表格提供分类数据，配置方法可参考 <strong><a href="#table" id="t2" onclick="lastClickedId = this.id">表格配置</a></strong>。</p>
<p>第二步，&lt;基础表格&gt;需要一个描述字段作为树状表展示的字段，父ID作为&lt;表格&gt;去重的字段 <strong><a href="#nav1_config">详细操作</a></strong></p>
<p>第三步，&lt;基础表格&gt;配置完成后，进入&lt;基础表格&gt;页面添加分类数据。<strong><a href="#nav1_config2">详细操作</a></strong></p>
<p>第四步，配置所需模板，添加&lt;树状表格&gt;与&lt;表格&gt;组件，将&lt;表格&gt;组件设为主功能，配置功能名，添加父ID字段以便&lt;树状表格&gt;关联。   <strong><a href="#nav1_config1">详细操作</a></strong></p>
<p>第五步，点击&lt;树状表格&gt;配置字段，选取来源表&lt;基础表格&gt;，选取来源字段<strong>描述字段</strong>与<strong>父ID</strong>字段，将描述字段设为主段，父ID字段设为子段，保存后刷新。<strong><a href="#nav1_config4">详细操作</a></strong></p>
<p>第六步，点击&lt;树状表格&gt;配置明细，将&lt;树状表格&gt;id字段与&lt;表格&gt;p_id字段进行关联。<strong><a href="#nav1_config3">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<blockquote>
<p>组件关联时必须使用同类型的字段进行关联</p>
</blockquote>
</li>
<li>
<p>组件明细配置项</p>
<ul>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center">展开全部</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击展开所有层导航</td>
</tr>
<tr>
<td style="text-align:center">收起全部</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击收起所有层导航</td>
</tr>
<tr>
<td style="text-align:center">多选</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>表格数据处理</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">可编辑</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>自定义按钮，详细配置查看<a href="#anniu" id="an3" onclick="lastClickedId = this.id">按钮配置</a></p>
</li>
</ul>
</li>
<li>
<p><strong><a id="nav3_config1" href="#fun_setup_treegrid_nav3">第二步详细操作</a></strong></p>
<ul>
<li>将②表格选作主功能组件，配置组件明细，字段，菜单，可参考 <strong><a href="#table" id="t6" onclick="lastClickedId = this.id">表格配置</a></strong> ，本例主要说明表格与树状表格组件关联需要注意的细节</li>
</ul>
<p><img src="./assets/image/sys/treeNav3.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.②表格需要配置分类字段来去重<br>
2.点击分类字段，勾选值不为空，是否必须，默认筛选。</p>
</li>
</ul>
<p><strong><a id="nav3_config2" href="#fun_setup_treegrid_nav3">第三步详细操作</a></strong></p>
<ul>
<li>点击保存，ctrl+f5刷新，进入保存后的页面，给主表格注入数据，可手动新增或选择Excel表导入</li>
</ul>
<p><img src="./assets/image/sys/treeT3.png" alt="第五步"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击新增手动输入<br>
2.使用Excel表批量导入同步写表</li>
</ul>
<p><strong><a href="#fun_setup_treegrid_nav3" id="nav3_config4">第四步详细操作</a></strong></p>
<ul>
<li>进入系统管理系统功能栏，选中新增的树状组件右键选择修改功能进入该功能配置面板，点击①树状表格进行配置，字段配置中②表格作为来源表，选取来源表中的分类字段作去重展示</li>
</ul>
<p><img src="./assets/image/sys/treeNav1.png" alt="第六步"></p>
<ul>
<li>如果需要对&lt;树状表格&gt;做过滤展示，可选择来源字段，根据该字段的值来过滤树状表格的数据展示</li>
</ul>
<p><img src="./assets/image/sys/treeNav5.png" alt="第六步"></p>
<p><strong>说明:</strong> 将最大值字段值作为过滤条件，数据树架构默认显示符合该过滤条件的数据。</p>
<p><strong><a id="nav3_config3" href="#fun_setup_treegrid_nav3">第五步详细操作</a></strong></p>
<p>点击组件关联将②表中的分类字段与树状表格的分类字段进行关联</p>
<p><img src="./assets/image/sys/treeNav2.png" alt="第六步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.选择②表格组件</p>
<p>2.选择①树状表格自身组件分类字段，组件关联时必须使用同类型的字段进行关联</p>
<p>3.选择②表格中的分类字段进行关联</p>
<p>点击保存后点击刷新缓存，再刷新浏览器，功能生效。<br>
<img src="./assets/image/sys/save3.png" alt="刷新"></p>
<br>
<br>
<p><strong>导航模式二</strong></p>
<p><strong><a id="nav2_config1" href="#fun_setup_treegrid_nav2">第二步详细操作</a></strong></p>
<ul>
<li>将②表格选作主功能组件，配置组件明细，字段，菜单，可参考 <strong><a href="#table" id="t4" onclick="lastClickedId = this.id">基础数据栏</a></strong> 表格配置，本例主要说明表格与树状表格组件关联需要注意的细节</li>
</ul>
<p><img src="./assets/image/sys/treeT1.png" alt="第二步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.②表格需要有p_id类型字段，该字段作用是属于同一类型的数据该字段值相同，便于分类<br>
2.该字段值不能为空<br>
3.该字段必须填写<br>
4.设置默认筛选</p>
<p><img src="./assets/image/sys/treeT2.png" alt="第二步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.②表格需要有描述字段<br>
2.设置为描述字段<br>
3.该字段必须填写<br>
4.设置默认筛选</p>
<p><strong><a id="nav2_config2" href="#fun_setup_treegrid_nav2">第四步详细操作</a></strong></p>
<ul>
<li>点击保存，再刷新浏览器，进入&lt;树状表格&gt;功能中，依次填写各层级数据，第一层的父id不需要填写，第二层的父id选取第一层的描述字段,依次填写。</li>
</ul>
<p><img src="./assets/image/sys/tree_table_config.png" alt="第五步"></p>
<p><strong><a href="#fun_setup_treegrid_nav2" id="nav2_config4">第五步详细操作</a></strong></p>
<ul>
<li>进入系统管理系统功能栏，选中新增的树状组件右键选择修改功能进入该功能配置面板，点击①树状表格进行配置，字段配置中②表格作为来源表，选取来源表中的字段作树状分类展示</li>
</ul>
<p><img src="./assets/image/sys/treeT5.png" alt="第六步"></p>
<ul>
<li>如果需要对&lt;树状表格&gt;做过滤展示，可选择来源字段，根据该字段的值来过滤树状表格的数据展示</li>
</ul>
<p><img src="./assets/image/sys/treeNav5.png" alt="第六步"></p>
<p><strong>说明:</strong> 将最大值字段值作为过滤条件，数据树架构默认显示符合该过滤条件的数据。</p>
<p><strong><a id="nav2_config3" href="#fun_setup_treegrid_nav2">第六步详细操作</a></strong></p>
<ul>
<li>点击组件关联将②表中的p_id与树状表格的id进行关联</li>
</ul>
<p><img src="./assets/image/sys/tree2.png" alt="第六步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.选择②表格组件</p>
<p>2.选择①树状表格自身组件</p>
<p>3.选择②表格中的p_id字段进行关联</p>
<br>
<br>
<p><strong>导航模式三</strong></p>
<p><strong><a id="nav1_config" href="#fun_setup_treegrid_nav1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/tree%20(5).png" alt="第一步"></p>
<p><strong>说明</strong>：配置的字段将被树状表格引用作分类依据，父ID字段为去重字段，名称为描述字段。</p>
<ul>
<li>
<p><strong><a id="nav1_config2" href="#fun_setup_treegrid_nav1">第三步详细操作</a></strong></p>
<p><img src="./assets/image/sys/tree%20(4).png" alt="第二步"></p>
<p><strong>说明</strong>：为&lt;基础表格&gt;页面添加分类数据，其中相同父ID的数据是该ID数据的子类。<br>
为方便填写数据，可将父ID字段设置多对一，对应&lt;基础表格&gt;的描述字段（当前行ID）；</p>
<p><img src="./assets/image/sys/tree_table_config.png" alt="第二步"></p>
</li>
</ul>
<p><strong><a id="nav1_config1" href="#fun_setup_treegrid_nav1">第四步详细操作</a></strong></p>
<ul>
<li>将②表格选作主功能组件，配置组件明细，字段，菜单，可参考<a href="#table" id="t3" onclick="lastClickedId = this.id">表格配置</a>，本例主要说明表格与树状表格组件关联需要注意的细节</li>
</ul>
<p><img src="./assets/image/sys/tree8.png" alt="第四步"></p>
<p><strong>说明</strong>： ②表格注意添加父ID字段，以便树状表格关联</p>
<p><strong><a id="nav1_config4" href="#fun_setup_treegrid_nav1">第五步详细操作</a></strong></p>
<ul>
<li>字段配置中将配置好的单表格作为来源表，选取来源表中的字段作树状分类展示</li>
</ul>
<p><img src="./assets/image/sys/tree%20(6).png" alt="第六步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击选择来源表，搜索已配置的单表格（零件分类表），双击引入</p>
<p>2.点击选择字段，选取要展示的字段</p>
<ul>
<li>
<p>如果需要对&lt;树状表格&gt;做过滤展示，可选择来源字段，根据该字段的值来过滤树状表格的数据展示</p>
<p><img src="./assets/image/sys/treeNav5.png" alt="第六步"></p>
<p><strong>说明:</strong> 将最大值字段值作为过滤条件，数据树架构默认显示符合该过滤条件的数据。</p>
</li>
</ul>
<p><strong><a id="nav1_config3" href="#fun_setup_treegrid_nav1">第六步详细操作</a></strong></p>
<ul>
<li>
<p>点击①树状表格进行配置，点击组件关联将②表中的p_id与树状表格的id进行关联<br>
<img src="./assets/image/sys/tree2.png" alt="第五步"></p>
</li>
<li>
<p><strong>编号指向说明</strong></p>
</li>
</ul>
<p>1.选择②表格组件</p>
<p>2.选择①树状表格自身组件</p>
<p>3.选择②表格中的p_id字段进行关联</p>
<ul>
<li>点击保存后Ctrl+F5刷新，进入配置好的树状导航组件，点击左侧导航，在对应的右侧表格新增数据<br>
<img src="./assets/image/sys/tree%20(1).png" alt="第七步"></li>
</ul>
<br>
<br>
<p><a id="date" href="">点击返回</a></p>
<h3 id="日期导航配置">日期导航配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;日期导航&gt;属于导航类组件，&lt;日期导航&gt;组件不能作为主功能存在，常与&lt;基础表格&gt;关联显示。通过日期导航快速定位表格数据</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>用户希望通过表格中的日期字段对全表进行筛选分类，并展示特定时间段内的统计数据。</p>
</li>
<li>
<p><strong>搭建</strong></p>
</li>
<li>
<p>步骤</p>
  <p id="dateNav_back"></p>
<p>第一步，配置好模板后，添加&lt;日期导航&gt;与&lt;表格&gt;组件，将&lt;表格&gt;组件设为主功能，配置功能名，添加时间类型字段，以便与日期导航关联，配置菜单与分组。 <strong><a href="#dateNav_config1">详细操作</a></strong></p>
<p>第二步，点击&lt;日期导航&gt;配置明细，将&lt;日期导航&gt;end_time字段与&lt;表格&gt;end_time字段作关联 <strong><a href="#dateNav_config2">详细操作</a></strong></p>
<p>第三步，&lt;日期导航&gt;中选择默认日期组件为"日"。<strong><a href="#dateNav_config3">详细操作</a></strong></p>
<p>第四步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#dateNav_config4">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<p>1.&lt;日期导航&gt;是根据关联主表中的日期时间进行导航定位，因此关联主表必须有日期字段。<br>
2.&lt;日期导航&gt;是虚拟表，自身没有字段，当填写组件关联或统计字段时，需要从主表中手动复制相应字段名。<br>
3.统计字段配置中，字段名不可为空，且字段必须为日期导航关联主表中的字段，否则会报无效参数错误。</p>
</li>
<li>
<p>组件明细配置项</p>
<ul>
<li>组件关联：<strong><a href="#association" id="a4" onclick="lastClickedId = this.id">详细配置</a></strong></li>
<li>选择默认日期组件：日|周|月</li>
<li>统计字段配置：日期导航中，将鼠标悬浮在有数据的日期上，展示该日期下的统计数据。<br>
<strong>配置示例：</strong><br>
点击添加统计字段，字段名从主表中复制，根据字段内容为字段添加规则，本例配置中规则为fbillid字段内容等于1或等于2，fversion字段内容包含‘今天’。<br>
<img src="./assets/image/sys/dateNav5.png" alt="统计字段"></li>
</ul>
</li>
</ul>
<p><strong><a href="#dateNav_back" id="dateNav_config1">第一步详细操作</a></strong></p>
<ul>
<li>将②表格选作主功能组件，配置组件明细，字段，菜单，表格详细配置可参考<a href="#table" id="t5" onclick="lastClickedId = this.id">基础数据栏</a>表格配置，本例主要说明表格与日期导航组件关联需要注意的细节</li>
</ul>
<p><img src="./assets/image/sys/dateNav%20(2).png" alt="第二步"></p>
<p><strong>说明：</strong> ②表字段配置时需添加结束日期字段，作为日期导航关联字段</p>
<p><strong><a href="#dateNav_back" id="dateNav_config2">第二步详细操作</a></strong></p>
<ul>
<li>配置①日期导航组件明细，将①日期导航end_time字段与②表的end_time字段对应关联。</li>
</ul>
<p><img src="./assets/image/sys/dateNav%20(3).png" alt="第三步"></p>
<p><strong>编号指向说明：</strong><br>
1.将②表格作为关联组件<br>
2.①日期导航组件无字段需手动填写字段<br>
3.②表格组件的关联字段</p>
<p><strong><a href="#dateNav_back" id="dateNav_config3">第三步详细操作</a></strong></p>
<ul>
<li>设置日期组件配置项，选择默认日期组件</li>
</ul>
<p><img src="./assets/image/sys/dateNav%20(4).png" alt="第四步"></p>
<p><strong><a href="#dateNav_back" id="dateNav_config4">第四步详细操作</a></strong></p>
<p>点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
<p><a id="doc" href="">点击返回</a></p>
<h3 id="单据配置">单据配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;单据&gt;组件属于单功能类组件，可设为主功能单独显示。</p>
<ul>
<li><strong>使用场景</strong></li>
</ul>
<p>记录客户下单信息，记录企业采购商品或服务的需求，记录物料的入库、出库、移库等操作，确保库存的准确性和可追溯性，跟踪产品的生产流程和成本。。。。</p>
<ul>
<li>
<p><strong>搭建</strong></p>
</li>
<li>
<p>步骤</p>
  <p id="doc_back"></p>
<p>第一步，选好模板，添加&lt;单据&gt;组件。</p>
<p>第二步，点击&lt;单据&gt;，将&lt;单据&gt;设为主功能。<strong><a href="#doc_config1">详细操作</a></strong></p>
<p>第三步，点击&lt;单据&gt;配置明细，功能名，单体名为必须项，且需遵循国际化语言规则填写，其他根据需求选择具体配置项。<strong><a href="#doc_detail">组件明细配置项</a></strong></p>
<p>第四步，&lt;单据&gt;配置字段，配置单头字段，需添加描述字段，单头中状态与审核状态系统自动添加。 <strong><a href="#doc_config2">详细操作</a></strong></p>
<p>第五步，配置单体字段，单体字段中需选择master_bill_id字段，其它字段根据需求选择。</p>
<p>第六步，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。  <strong><a href="#doc_config3">详细操作</a></strong></p>
<p>第七步，重新进入&lt;单据&gt;功能配置，单体字段配置中master_bill_id字段设置多对一，对应单头的描述字段。</p>
<p>第八步，点击保存，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#doc_config4">详细操作</a></strong></p>
<p>第九步，进入新建单据功能，先填写单头信息，点击保存，然后点击编辑，单体点击增行，增加数据。</p>
</li>
<li>
<p>注意事项</p>
<p>1.一定要勾选主功能，方可选菜单<br>
2.功能名严格按照国际化规则填写<br>
3.功能名配置完成后方可选取字段</p>
</li>
</ul>
<p><strong><a href="#doc_back" id="doc_config1">第二步详细操作</a></strong></p>
<p><img src="./assets/image/sys/sys23.png" alt="第三步"></p>
<ul>
<li><strong>编号指向说明</strong></li>
</ul>
<p>1.点击&lt;单据&gt;</p>
<p>2.勾选主功能</p>
<p><strong><a href="#doc_back" id="doc_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  :需按照 <strong><a href="#global" id="g7" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>分组配置:详细查看 <strong><a href="#group" id="group1" onclick="lastClickedId = this.id">分组配置</a></strong></p>
</li>
<li>
<p>表单样式</p>
<p>列数：选择页面以几列显示<br>
像素宽度：按像素定义每个字段内容的宽度<br>
百分比宽度：根据百分比定义每个字段内容的宽度<br>
放置底部：</p>
</li>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#import" id="IM4" onclick="lastClickedId = this.id">导入</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导入Excel表同步生成页面表格</td>
</tr>
<tr>
<td style="text-align:center"><strong><a href="#export" id="EX4" onclick="lastClickedId = this.id">导出</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">导出页面表格生成Excel表格</td>
</tr>
<tr>
<td style="text-align:center">初页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">末页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">下一页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">上一页</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打印</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">反审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">查找</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">送审</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核状态</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>自定义按钮，详细配置查看<a href="#anniu" id="an4" onclick="lastClickedId = this.id">按钮配置</a></p>
</li>
<li>
<p>事件，单据可分别配置单头与单体的前后事件，详细查看<a href="#event" id="e4" onclick="lastClickedId = this.id">事件设置</a></p>
</li>
</ul>
<p><strong><a href="#doc_back" id="doc_config2">第四步详细操作</a></strong></p>
<ul>
<li>根据配置需求选择字段，单据组件同样需要分别配置单头和单体的字段</li>
</ul>
<p><img src="./assets/image/sys/tabFields.png" alt="第六步" title=":size=50%"></p>
<p><strong>编号指向说明</strong></p>
<p>1.这俩个字段是单头默认字段，需注意不要删除<br>
2.需功能名配置完后方可点击选取配置字段</p>
<p><img src="./assets/image/sys/sys20.png" alt="第六步"></p>
<p><strong>编号指向说明</strong><br>
1.配置完功能名后可点击选取，弹出字段库查询组件</p>
<p>2.可以搜索关键字查找要选取的字段，如果没有想要的字段，可以点击新增添加新的字段</p>
<p>3.选中字段，可选中多个，如果单个字段双击即可选入</p>
<p>4.点击确定，字段选取成功</p>
<p>5.可调整字段顺序，或者删除字段</p>
<ul>
<li>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT4" onclick="lastClickedId = this.id">字段详细配置</a>栏</li>
</ul>
<p><strong><a href="#doc_back" id="doc_config3">第六步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#doc_back" id="doc_config4">第八步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br>   
 <br>   
<p><a id="cavans" href="">点击返回</a></p>
<h3 id="画布配置">画布配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;画布&gt;组件属于图形图表类组件，非顶层组件，不可作为主功能单独显示，常用&lt;基础表格&gt;组件关联使用</p>
<ul>
<li>
<p><strong>使用场景</strong></p>
<p>产品的加工流程进行图形化展示，数据筛选过滤的思维导图展示。</p>
</li>
<li>
<p><strong>搭建</strong></p>
<ul>
<li>
<p>步骤</p>
  <p id="cavans_back"></p>
<p>第一步，配置好模板后，添加&lt;画布&gt;与&lt;表格&gt; 。</p>
<p>第二步，点击&lt;表格&gt;配置明细，将&lt;表格&gt;设置为主功能，&lt;表格&gt;组件关联中将&lt;表格&gt;id字段对应关联&lt;画布&gt;master_bill_id字段。 <strong><a href="#cavans_config3">详细操作</a></strong></p>
<p>第三步，点击&lt;画布&gt;配置明细，功能名为必须项，注意按照国际化规范填写，其它根据需求配置。 <strong><a href="#cavans_detail">组件明细配置项</a></strong></p>
<p>第四步，&lt;画布&gt;配置字段，图节点id与主单id是系统自动添加，在图节点id字段详细配置中将节点数据勾选，其它字段根据需求选择添加  <strong><a href="#cavans_config2">详细操作</a></strong></p>
<p>第五步，点击&lt;表格&gt;，配置菜单，先点击选择导航,再点击选择分组，确定导航和分组，然后点保存按钮。<strong><a href="#cavans_config4">详细操作</a></strong></p>
<p>第六步，点击保存之后，点击刷新缓存，再刷新浏览器，功能添加成功。<strong><a href="#cavans_config5">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<blockquote>
<p>1.需要与主表关联使用<br>
2.需要把node_id字段节点数据打开</p>
</blockquote>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#cavans_back" id="cavans_detail">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  :需按照 <strong><a href="#global" id="g8" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>表格样式</p>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
<ul>
<li>工具栏</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">反审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打开</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>表格数据处理<br>
|                                          属性                                          |  值   |              说明              |<br>
| :------------------------------------------------------------------------------------: | :---: | :----------------------------: |<br>
|                                         可编辑                                         |  是   |                                |<br>
| <strong><a id="loading1" href="#autoload" onclick="lastClickedId = this.id">自动加载</a></strong> |  是   | 主表开启，主表关联下的从表关闭 |</p>
</li>
<li>
<p>事件，详细查看<a href="#event" id="e5" onclick="lastClickedId = this.id">事件设置</a></p>
</li>
</ul>
<p><strong><a href="#cavans_back" id="cavans_config3">第二步详细操作</a></strong></p>
<ul>
<li>配置①表格组件明细，将①表格id字段与②画布的master_bill_id字段对应关联。</li>
</ul>
<p><img src="./assets/image/sys/cavans7.png" alt="第三步"></p>
<p><img src="./assets/image/sys/cavans4.jpg" alt="第五步"></p>
<p><strong><a href="#cavans_back" id="cavans_config2">第四步详细操作</a></strong></p>
<ul>
<li>根据需求选择相应的字段和规则。</li>
</ul>
<p><img src="./assets/image/sys/sys20.png" alt="第六步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.配置完功能名后可点击选取，弹出字段库查询组件</p>
<p>2.可以搜索关键字查找要选取的字段，如果没有想要的字段，可以点击新增添加新的字段</p>
<p>3.选中字段，可选中多个，如果单个字段双击即可选入</p>
<p>4.点击确定，字段选取成功</p>
<p>5.可调整字段顺序，或者删除字段</p>
<ul>
<li>详细字段设置根据业务需求进行设置，可参考<a href="#DetailFE" id="deT5" onclick="lastClickedId = this.id">详细配置</a>栏</li>
</ul>
<p><img src="./assets/image/sys/cavans3.jpg" alt="第六步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.系统自动生成画布的字段，将node_id字段节点数据勾选</p>
<p>2.选择标题字段作为描述字段</p>
<p><strong><a href="#cavans_back" id="cavans_config4">第五步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p><strong><a href="#cavans_back" id="cavans_config5">第六步详细操作</a></strong><br>
点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br> 
<p><a id="refcavans" href="">点击返回</a></p>
<h3 id="引用画布配置">引用画布配置 </h3>
<ul>
<li><strong>说明</strong></li>
</ul>
<p>&lt;引用画布&gt;组件属于图形图表类组件，不可作为主功能单独显示，常用&lt;基础表格&gt;组件关联使用</p>
<ul>
<li><strong>使用场景</strong></li>
</ul>
<p>引用系统中已建好的画布图，但是与引用组件虚拟表不同，引用画布是一张物理表，通过对图库的多对一选择，任意展示系统已建好的画布图。</p>
<ul>
<li>
<p><strong>搭建</strong></p>
<ul>
<li>
<p>步骤</p>
  <p id="refcavans_back"></p>
<p>第一步，配置好模板后，添加&lt;引用画布&gt;与&lt;表格&gt; 。</p>
<p>第二步，点击&lt;表格&gt;配置明细，将&lt;表格&gt;设置为主功能，&lt;表格&gt;组件关联中将&lt;表格&gt;id字段对应关联&lt;引用画布&gt;master_bill_id字段。 <strong><a href="#refcavans_config3">详细操作</a></strong></p>
<p>第三步，点击&lt;引用画布&gt;配置明细，功能名为必须项，需按照国际化规范填写，其它根据需求选择。<strong><a href="#refcavans_config1">组件明细配置项</a></strong></p>
<p>第四步，&lt;引用画布&gt;配置字段，将master_bill_id字段设置禁止输入，值不为空；将_sys_graph_id字段设置禁止输入，多对一选择<strong>图库</strong> <strong><a href="#refcavans_config2">详细操作</a></strong></p>
<p>第五步，点击&lt;表格&gt;，确定导航和分组，配置选择导航和选择分组后，点保存按钮，点击刷新缓存再刷新浏览器，功能生效。<strong><a href="#refcavans_config6">详细操作</a></strong></p>
<p>第六步，进入该功能页面，新增一条&lt;表格&gt;数据，点击保存</p>
<p>第七步，选中该数据，&lt;引用画布&gt;组件点击<strong>打开按钮</strong>，<strong><a href="#refcavans_config4">详细操作</a></strong></p>
<p>第八步，打开弹窗，点击新增，图库id字段中点击放大镜选择<strong>需要引用的画布图</strong>，<strong><a href="#refcavans_config5">详细操作</a></strong></p>
</li>
<li>
<p>注意事项</p>
<blockquote>
<p>1.需要与主表关联使用<br>
2.需要将_sys_graph_id字段多对一选择<strong>图库</strong></p>
</blockquote>
</li>
</ul>
</li>
</ul>
<p><strong><a href="#refcavans_back" id="refcavans_config1">第三步组件明细配置项</a></strong></p>
<ul>
<li>
<p>功能名  :需按照 <strong><a href="#global" id="g9" onclick="lastClickedId = this.id">国际化语言</a></strong> 规范填写</p>
</li>
<li>
<p>功能注释：对该功能组件的解释，有利于全局搜索筛选组件</p>
</li>
<li>
<p>表格样式</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">显示表头</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示表尾</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示工具栏</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">显示边框</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>工具栏</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">新建行</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击新增行数据</td>
</tr>
<tr>
<td style="text-align:center">列设置</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击下拉选择字段是否展示</td>
</tr>
<tr>
<td style="text-align:center">删除</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击删除会删除临时数据，刷新后数据还会出现，选择直接删除刷新后不会出现</td>
</tr>
<tr>
<td style="text-align:center">保存表</td>
<td style="text-align:center">是</td>
<td style="text-align:center">点击保存编辑的数据</td>
</tr>
<tr>
<td style="text-align:center">修改</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">取消审核</td>
<td style="text-align:center">否</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">反审核</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center">打开</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
</tbody>
</table>
</li>
<li>
<p>表格数据处理</p>
<table>
<thead>
<tr>
<th style="text-align:center">属性</th>
<th style="text-align:center">值</th>
<th style="text-align:center">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">可编辑</td>
<td style="text-align:center">是</td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:center"><strong><a id="loading1" href="#autoload" onclick="lastClickedId = this.id">自动加载</a></strong></td>
<td style="text-align:center">是</td>
<td style="text-align:center">主表开启，主表关联下的从表关闭</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>事件，详细查看<a href="#event" id="e6" onclick="lastClickedId = this.id">事件设置</a></p>
</li>
</ul>
<p><strong><a href="#refcavans_back" id="refcavans_config3">第二步详细操作</a></strong></p>
<ul>
<li>配置①表格组件明细，将①表格id字段与②引用画布的master_bill_id字段对应关联。</li>
</ul>
<p><img src="./assets/image/sys/refcavans.png" alt="第三步"></p>
<p><img src="./assets/image/sys/cavans4.jpg" alt="第五步"></p>
<p><strong><a href="#refcavans_back" id="refcavans_config2">第四步详细操作</a></strong></p>
<ul>
<li>将②引用画布的master_bill_id字段勾选禁止输入，值不为空。</li>
</ul>
<p><img src="./assets/image/sys/refcavans1.png" alt="第六步"></p>
<ul>
<li>将②引用画布的_sys_graph_id字段勾选值不为空，是否必须，多对一中选择图库。</li>
</ul>
<p><img src="./assets/image/sys/refcavans2.png" alt="第六步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.选中_sys_graph_id字段</p>
<p>2.勾选值不为空，是否必须</p>
<p>3.点击放大镜按钮，打开系统功能查询</p>
<p>4.选择图库，双击引入</p>
<p><img src="./assets/image/sys/refcavans3.png" alt="第六步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.点击搜索图库</p>
<p>2.双击选入。</p>
<p><strong><a href="#refcavans_back" id="refcavans_config6">第五步详细操作</a></strong></p>
<p>先点击选择导航，本例中选择“系统测试”，再点击选择分组，本例中选择“浙江1”<br>
<img src="./assets/image/sys/save2.png" alt="第五步"><br>
<img src="./assets/image/sys/save1.png" alt="第五步"></p>
<p>点击保存之后，再点击刷新缓存按钮，之后刷新浏览器，功能配置完成。<br>
<img src="./assets/image/sys/save3.png" alt="第五步"></p>
 <br> 
<ul>
<li><strong><a href="#refcavans_back" id="refcavans_config4">第七步详细操作</a></strong></li>
</ul>
<p><img src="./assets/image/sys/refcavans5.png" alt="第五步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.选中新增数据</p>
<p>2.点击打开弹窗</p>
<ul>
<li><strong><a href="#refcavans_back" id="refcavans_config5">第八步详细操作</a></strong></li>
</ul>
<p><img src="./assets/image/sys/refcavans4.png" alt="第五步"></p>
<p><strong>编号指向说明</strong></p>
<p>1.点击新增数据</p>
<p>2.点击图库ID字段中的放大镜按钮，打开图库查询弹窗</p>
<p>3.双击选中需要引入的画布图</p>
<h2 id="详细配置">详细配置 </h2>
<h3 id="组件明细详细配置">组件明细详细配置 </h3>
<p><img src="./assets/image/sys/mingxi.png" alt="组件明细" title=":size=30%"></p>
<h4 id="功能名">功能名 </h4>
<p><a id="global" href="">①.功能名</a></p>
<p><img src="./assets/image/sys/sys18.png" alt="功能名"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击图标弹出国际化语言弹窗<br>
2.关键字部分需要严格使用英文填写，且不能为大写，大写可用下划线代替，不能与其他功能名重复只有填写完关键字部分，才能填写下方内容<br>
3.分别填写简体、繁体、英文功能名，请勿将关键字内容直接复制到英文填写框中，关键字与英文名完全相同会导致国际化保存错误。<br>
4.点击保存，功能名配置完毕</li>
</ul>
<h4 id="功能注释">功能注释 </h4>
<p>②. 功能注释</p>
<p>对该功能组件的解释，有利于全局搜索筛选组件</p>
<h4 id="数据库类型">数据库类型 </h4>
<p>③. 数据库类型</p>
<p>点击选择数据库类型，默认'mysql';</p>
<h4 id="组件关联">组件关联 </h4>
<p><a id="association" href="">④.组件关联</a></p>
<ul>
<li>
<p>说明<br>
主从表中多个组件相互关联时使用，一般在主功能组件中设置，将主功能组件id关联副组件master_bill_id字段；也可使用其他字段进行关联，但需注意字段类型对应，如日期导航中end_time字段对应end_time字段。</p>
</li>
<li>
<p>配置</p>
<p><img src="./assets/image/sys/ref2.png" alt="第二步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.组件关联需在父组件中进行关联，此处①表格关联②引用组件</p>
<p>2.id为①表格的自身id</p>
<p>3.无法选择目标字段，需手动输入目标字段</p>
</li>
</ul>
</li>
<li>
<p>注意<br>
组件关联时必须使用同类型的字段进行关联。</p>
</li>
<li>
<p>效果</p>
<p>上表的标题对应下表的主单id。</p>
<p><img src="./assets/image/sys/ref7.png" alt="第六步"></p>
<ul>
<li>
<p><strong>编号指向说明</strong><br>
1.此时表中无数据，点击新增添加数据</p>
<p>2.上表的第一条数据对应下表</p>
</li>
</ul>
</li>
</ul>
<h4 id="qbe查询">QBE查询 </h4>
<p><a id="QBEsearch" href="">⑤. QBE查询</a></p>
<p><strong>QBE查询</strong>可使用表格的多个字段作为筛选条件查询，开启后在&lt;表格&gt;工具栏中以详查按钮存在，在&lt;表单&gt;工具栏中以高级查找按钮存在<br>
点击开启或关闭。</p>
<p>第一步，在'查询字段'的字段配置中勾选默认筛选，<br>
第二步，在组件明细中打开QBE查询,开启后可选择是否初始化显示与功能显示位置。</p>
<p>需注意QBE查询必须是在主功能组件，且主功能组件为表格组件的情况下可以配置使用</p>
<p><img src="./assets/image/sys/qbeSerch1.png" alt="qbe查询"><br>
<img src="./assets/image/sys/qbeSerch2.png" alt="qbe查询"></p>
<h4 id="条码扫描">条码扫描 </h4>
<p>条码扫描功能目前只在表格组件中开启，启用条码扫描通过约定特殊结束符调用公共api；<br>
<strong>系统配置</strong><br>
<img src="./assets/image/sys/barcode.png" alt="条码扫描"><br>
表格配置组件明细时，选择打开条码扫描，设置功能位置，约定特殊结束符（纯字符），选取对应api作为条码扫描触发事件</p>
<p><strong>功能效果</strong><br>
<img src="./assets/image/sys/barcode1.png" alt="条码扫描"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击扫码按钮，打开条码扫描功能<br>
2.打开条码扫描功能后输入框会自动聚焦，监听输入内容，当输入约定结束符并回车，系统会调用设置好的公共api。</li>
</ul>
<h4 id="表格样式">表格样式 </h4>
<p>⑥. 表格样式</p>
<p>可以控制表格是否显示表头、表尾、分页、工具栏、边框</p>
<h4 id="工具栏">工具栏 </h4>
<p>⑦. 工具栏</p>
<p>工具栏是组件的标准按钮配置，可以控制新增，删除，刷新等按钮的显示，<br>
但用户有些功能按钮无法使用，因为用户所对应的角色没有该按钮的使用权限</p>
<h4 id="表格数据处理">表格数据处理 </h4>
<p>⑧. 表格数据处理</p>
<p>可编辑用来控制组件内数据是否可编辑，</p>
<p><a id="autoLoad" href="">自动加载</a></p>
<p>自动加载功能用于功能预加载，在功能打开时自动加载数据</p>
<p>当同一页面存在多个功能时，为优化页面加载速度，应该将主编关联的从表的自动加载关闭，只需要保留主表自动加载</p>
<p><img src="./assets/image/sys/autoloading.png" alt="自定义按钮"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.功能主表开启自动加载，功能打开后自动加载主表全部数据<br>
2.从表无需开启自动加载，从表在功能打开时会加载主表关联下的数据</li>
</ul>
<h4 id="自定义按钮">自定义按钮 </h4>
<p><a id="anniu" href="">⑨. 自定义按钮</a></p>
<p>自定义按钮可以自定义按钮名，按钮图表，按钮功能</p>
<p><img src="./assets/image/sys/anniu1.png" alt="自定义按钮" title=":size=50%"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击新增按钮<br>
2.鼠标右键打开详细设置<br>
3.设置按钮功能名，注意按国际化规范配置<br>
4.下拉列表选择按钮图表<br>
5.点击放大镜打开公共API功能组件，选择按钮功能API<br>
6.设置按钮状态</li>
</ul>
<p><strong>自定义按钮状态设置</strong></p>
<table>
<thead>
<tr>
<th>勾选属性</th>
<th>作用</th>
</tr>
</thead>
<tbody>
<tr>
<td>初始不可用</td>
<td>该按钮初始化为禁用状态</td>
</tr>
<tr>
<td>勾选显示</td>
<td>当前表格功能勾选数据后自定义按钮呈现可用状态</td>
</tr>
<tr>
<td>单选触发检查</td>
<td>当前表格功能勾选一条数据，自定义按钮呈现可用状态，勾选多条不可用</td>
</tr>
<tr>
<td>读取当前状态</td>
<td>该按钮的是否可用状态会写入自定义按钮状态记录表中，用于api返回时修改其它按钮可用状态或存储该按钮状态保证刷新后状态不会被初始化</td>
</tr>
</tbody>
</table>
<h4 id="事件">事件 </h4>
<p><a id="event" href="">⑫. 事件</a></p>
<p><strong>注意事项</strong></p>
<p>1.事件用于新增，修改，删除等操作的前后事件，在用户执行完上述操作后点击保存，会同步执行该事件，执行成功则同步提交数据库，失败则返回此表原本的状态，并将错误信息展示。</p>
<p>2.前后事件不支持交互，只适用于同步数据库，目前只支持mysql数据库</p>
<p>3.单据组件在此基础上增加审核前，审核后，取消审核前，取消审核后事件，可以为多张单头、单体配置前后事件，这些事件都会在点击保存之后同步执行</p>
<p>4.视图组件禁止对数据进行修改，因此事件只有打开功能，关闭功能，行选中，联查搜索；</p>
<p><strong>事件触发时机</strong></p>
<table>
<thead>
<tr>
<th>事件名</th>
<th>触发时机</th>
<th>适用组件</th>
</tr>
</thead>
<tbody>
<tr>
<td>删除前</td>
<td>删除数据</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>删除后</td>
<td>删除数据</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>修改前</td>
<td>修改数据后保存</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>修改后</td>
<td>修改数据后保存</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>新增前</td>
<td>新增数据后保存</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>新增后</td>
<td>新增数据后保存</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>审核前</td>
<td>点击审核</td>
<td>表单、单据</td>
</tr>
<tr>
<td>审核后</td>
<td>点击审核</td>
<td>表单、单据</td>
</tr>
<tr>
<td>打开功能</td>
<td>初次打开功能时</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>关闭功能</td>
<td>关闭功能</td>
<td>表格、表单、单据、引用实表、画布、引用画布</td>
</tr>
<tr>
<td>联查搜索</td>
<td>表格数据加载时，在主从表关联关系中，主表切换行选择，从表会刷新数据，重新触发多对一联查过滤</td>
<td>主从表关联的表格</td>
</tr>
</tbody>
</table>
<p><strong>系统操作</strong></p>
<p><img src="./assets/image/sys/event.png" alt="事件" title=":size=50%"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击下箭头，展开公共API组件弹窗<br>
2.搜索API名，可模糊查询<br>
3.选中API数据<br>
4.点击确定</li>
</ul>
<h4 id="表格模式">表格模式： </h4>
<p>可选择画布模式，表单模式，单行编辑模式，勾选默认按钮，则功能打开时按照该默认模式显示</p>
<p><strong>快捷键切换方式</strong></p>
<p>表格切换表单：shift + f<br>
表格切换画布：shift + g</p>
<h4 id="弹窗编辑-后续废弃">弹窗编辑 （后续废弃） </h4>
<p><a id="edit" href="">⑬. 弹窗编辑</a></p>
<p>在表格组件中，点击编辑按钮，然后单击需要编辑的数据可直接修改此单元格的数据，<br>
弹窗编辑则可以双击单元格数据弹出弹窗，编辑整条行数据,<br>
注意需要先开启可编辑</p>
<h4 id="字段分组">字段分组 </h4>
<p>⑭. 字段分组</p>
<p>字段分组是在功能组件字段过多，不利于用户观看的情况下将字段在弹窗中进行分组展示<br>
注意字段分组作为新功能，如果想从已配置组件中新增该功能，需要先点击保存再配置该功能</p>
<p><img src="./assets/image/sys/fenzu.png" alt="分组" title=":size=50%"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.只有启用弹窗编辑后才能配置字段分组<br>
2.配置国际化分组名，本例配置文本分组<br>
3.点击出现选择字段弹窗，需要先为该组件配置字段后方可选取字段进行分组<br>
4.选择符和文本的字段，可多选，全选<br>
5.点击分配到文本分组中，选错的字段可点击左箭头放回未选字段组<br>
6.点击确定<br>
7.可新增多个分组</li>
</ul>
<h4 id="关联表格">关联表格 </h4>
<ul>
<li>
<p><a id="assTable" href="">关联表格  </a></p>
<p><img src="./assets/image/sys/assTable.png" alt="关联表格" title=":size=50%"></p>
<p><strong>编号指向说明：</strong><br>
1.点击新增关联&lt;表格&gt;，可新增多个<br>
2.点击放大镜按钮打开系统功能查询<br>
3.搜索所需关联&lt;表格&gt;组件<br>
4.选中所需关联&lt;表格&gt;组件对应导航<br>
5.选中所需关联&lt;表格&gt;组件，点击确定，单条数据双击即可选中。<br>
6.删除关联&lt;表格&gt;</p>
</li>
</ul>
<h4 id="分组配置">分组配置 </h4>
<ul>
<li>
<p><strong><a id="group" href="">分组配置</a></strong></p>
<p>添加表头分组<br>
<img src="./assets/image/sys/form9.png" alt="表单布局"></p>
<p><strong>编号指向说明：</strong><br>
1.点击加号添加表头分组<br>
2.点击添加表头分组<br>
3.点击图标进行国际化配置，注意关键字部分需要严格使用英文填写，且不能为大写，不能与其他功能名重复只有填写完关键字部分，才能填写下方内容</p>
<p>选择表单布局风格，可选手风琴风格与页签风格</p>
<p><img src="./assets/image/sys/style.png" alt="表单布局" title="size=70%"></p>
<p>手风琴风格效果，可在一个页面查看所有表单</p>
<p><img src="./assets/image/sys/form7.png" alt="表单布局"></p>
<p>页签风格效果，可通过页签切换查看分组表单</p>
<p><img src="./assets/image/sys/form8.png" alt="表单布局"></p>
</li>
</ul>
<h4 id="导出功能">导出功能 </h4>
<ul>
<li>
<p><strong><a id="export" href="">导出</a></strong></p>
<ul>
<li>
<p>功能说明<br>
系统数据表之间存在大量复杂的业务之间的逻辑关联关系，如m20字段，下拉字段，不仅存储文本值，而且存储着对应的主单id/下拉选项id。<br>
<strong><a id="export1" href="#relationship" onclick="lastClickedId = this.id">复杂字段渲染流程</a></strong></p>
</li>
<li>
<p>点击导出按钮，选择要导出的字段，生成excel文件</p>
<p><img src="./assets/image/sys/export.png" alt="导出"></p>
<p><strong>编号指向说明：</strong><br>
1.点击按钮，下拉选择导出<br>
2.可自定义导出文件名<br>
3.选择要导出的字段<br>
4.点击导出生成Excel表格</p>
</li>
<li>
<p>注意事项：<br>
1、如果本excel是为了导入系统，建议将id，创建者，新建时间，最后修改时间，最后修改者这些字段不要导出，这些字段由系统自动维护。<br>
2、文件类型字段如果需要请点击下载，请勿在导出时添加文件类型字段。</p>
</li>
</ul>
<!-- * 导出之后打开excel，excel文件中存放两张工作表，**功能名表**存放系统表中展示的数据，**data表**存放多对一字段、下拉列表字段，纯国际化字段、国际化转换字段的对应值
 ![导出](./assets/image/sys/export2.png )
  **编号指向说明：**
   1.系统中该功能表展示的数据
   2.直接展示的文本数据存放在test1_tree_table工作表中，通过多对一查找、设置下拉id、字段类型设为国际化语言的功能字段，则需要将他们的对应值存放到data工作表中 -->
<!-- * 在系统表中，编辑状态下带有放大镜，下拉箭头，球形国际化图标的字段都需要有对应的查找参考值，将查找参考值存放到data工作表中，与功能名工作表的数据一一对应，方便在导入功能时同步写表。
 ![导出](./assets/image/sys/export3.png )

* 下图中，父ID字段为多对一字段，data工作表中存放的是多对一来源表的描述字段id；设备种类字段为下拉选项字段，data工作表中存放的是字段附加列表的值，data工作表与功能名工作表的数据一一对应，因此不可随意修改data工作表的中数据。
 ![导出](./assets/image/sys/export1.png ) -->
</li>
</ul>
<br>
<h4 id="导入功能">导入功能 </h4>
<ul>
<li>
<p><strong><a id="import" href="">导入</a></strong></p>
<ul>
<li><strong>功能说明</strong><br>
1.导入功能的主要用处在于临时对单功能数据表或主从表中无关联的从表进行一些数据的处理，<br>
2.如果需要导入本系统其他表数据或者第三方系统开放数据，应使用自定义按钮链接数据库存储过程或第三方API进行严谨的批量导入，<br>
3.请勿从一个窗口导出excel数据，再前往另一个窗口导入excel数据，本系统数据表之间存在复杂的业务逻辑关联关系，手动导入极易出错。</li>
</ul>
<br>
<ul>
<li><strong>注意事项</strong><br>
1.导入之前需先导出<br>
2.导出的时候系统语言是中文简体语言，导入时就必须同为中文简体语言。<br>
3.导出之后，在系统中将字段进行修改（如修改字段国际化原文），再进行导入，系统将无法查找导致导入失败<br>
4.请勿导出导入文件类型字段。</li>
</ul>
<br>
<ul>
<li>
<p><strong>系统操作</strong></p>
<p><img src="./assets/image/sys/import.png" alt="导入"></p>
<p><strong>编号指向说明：</strong><br>
1.点击按钮，下拉选择导入</p>
</li>
<li>
<p>2.根据需求选择功能</p>
<table>
<thead>
<tr>
<th>功能</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>插入</td>
<td>将excel表格数据插入到系统数据表中</td>
</tr>
<tr>
<td>更新</td>
<td>对系统数据表数据进行更新</td>
</tr>
<tr>
<td>同步写表</td>
<td>导入成功excel表后同步写入系统数据表，刷新后显示</td>
</tr>
<tr>
<td>只上传文件</td>
<td>只导入excel表</td>
</tr>
<tr>
<td>严格模式</td>
<td>传入的字段严格匹配一一对应。</td>
</tr>
<tr>
<td>匹配模式</td>
<td>系统会自动匹配excel表与系统表相同的字段进行导入，如子查询字段不可导入，可以将其整列删除进行匹配模式导入， 但excel表中存在系统表不存在的字段则不可导入。</td>
</tr>
</tbody>
</table>
<p>3.选择要导入的文件，注意导出的时候是中文简体语言，导入时就必须同为中文简体语言。</p>
</li>
</ul>
<br>
<ul>
<li><strong>excel文件操作</strong><br>
导入excel表时，如果功能名工作表中存在id，创建者，新建时间，最后修改时间，最后修改者字段列，需要先把这些字段列删除，导入excel文件系统会自动生成对应内容<br>
<img src="./assets/image/sys/import1.png" alt="导入"><!-- 如果data工作表存在内容，data工作表就必须功能名工作表相对应。如下拉字段需要将字段附加列表属性中对应的值（数字）填入data工作表，M2o字段需要将来源表对应的id值填入data工作表   **<a id="import1"  href="#relationship"  onclick="lastClickedId = this.id">复杂字段渲染流程</a>**
![导出](./assets/image/sys/export1.png ) -->
</li>
</ul>
<br>
<p><strong>导入失败说明</strong><br>
如果因为字段内容格式错误，如数字类型字段填写字符，多对一、下拉等字段填写不存在的内容，致使导入失败，那么系统会自动生成一份excel，里面标注由于哪些字段内容格式错误，用户可根据标注进行修改。</p>
<p><img src="./assets/image/sys/errorImport.png" alt="导入失败"></p>
<p><strong>编号指向说明：</strong><br>
1.颜色标注单元格为错误格式字段<br>
2.鼠标悬浮该字段显示错误原因。</p>
<p><strong>导入失败常见错误原因：</strong><br>
1.rpc网络错误<br>
2.bit类型字段填写0或1以外的无效字符<br>
3.多对一字段查找错误（多对一原表不存在该字段内容）<br>
4.下拉字段查找错误（下拉选项不存在该字段内容）<br>
5.int，smallInt等数字类型字段填写字符串<br>
6.日期类型字段填写非日期格式内容<br>
7.导入文件类型字段，（json）<br>
8.字段设置唯一索引，excel中存在数据重复</p>
<br>
<ul>
<li>
<p><strong><a id="relationship" href="">复杂字段渲染流程</a></strong></p>
<p><img src="./assets/image/sys/slc.png" alt="导出"><br>
<img src="./assets/image/sys/mto.png" alt="导出"></p>
</li>
</ul>
</li>
</ul>
<br>
<p><strong><a id="DetailFE" href="">点击返回</a></strong></p>
<h3 id="字段设置">字段设置 </h3>
<p>1.字段选取：点击选取按钮打开字段库弹窗，查找所需字段双击选入<br>
2.字段删除：字段删除时系统会进行校验，如果该字段已经存在并且有值，系统在删除前会弹出一份报告提示用户“此表已存在数据，是否确认删除已选中的字段？”<br>
3.字段排序：选中字段左侧单选框，点击上下按钮调节字段顺序。</p>
<h3 id="字段详细配置">字段详细配置 </h3>
<p><img src="./assets/image/sys/ziduan.png" alt="字段配置"></p>
<h4 id="字段属性配置">字段属性配置 </h4>
<ul>
<li>
<p>是否显示：控制字段是否显示，一般字段id不显示</p>
</li>
<li>
<p>值不为空：字段可以是手动输入也可从选单或子查询带过来，这里可以设置该字段如果为空就无法保存</p>
</li>
<li>
<p>描述字段：两个表之间关联的时候，主功能需要有一个字段配置为描述字段，<br>
主功能关联副功能时一般是id关联master_bill_id,但主功能id字段一般不显示，会使用描述字段关联副功能，<br>
副功能只需要在自己master_bill_id字段多对一配置中添加主功能描述字段即可。<br>
注意：1.用户想修改主功能描述字段的时候，需要先把原本的描述字段删除，再选择新的描述字段并点击保存，然后去副功能的多对一配置选取新的描述字段<br>
2.字段勾选描述字段时，将该字段设为唯一索引，保证该字段值不会重复。<br>
3.多对一，下拉，json，图片，图标，颜色，富文本类型字段不可作为描述字段使用<br>
4.用户勾选描述字段时系统会自动勾选值不为空，当描述字段内容为空时无法保存。</p>
</li>
<li>
<p>是否必须：字段前带有"*"符号的就是必须项</p>
</li>
<li>
<p>禁止输入：有些字段系统关联过来的字段，不允许输入修改</p>
</li>
<li>
<p>默认筛选：勾选后作为QBE查询功能过滤筛选字段，在表格或表单组件中使用</p>
</li>
<li>
<p>节点数据：只有画布组件才有节点数据配置，配置画布组件时需要将图节点ID既node_id字段勾选为节点数据</p>
</li>
</ul>
<p><strong>值不为空与是否必须区别说明</strong><br>
值不为空为数据库设置值不能为空，如果字段值为空则点击保存时报错，该字段可以设置默认值无需用户手动填写；是否必须为前端校验机制，前端显示中会将该字段名前显示星号，字段内容填写时会有校验提示用户该单元格必须填写内容。</p>
<h4 id="默认值">默认值 </h4>
<p>新增字段时候该字段的初始化值，可设置文本或函数，如"<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mi>o</mi><mi>w</mi><mo stretchy="false">(</mo><mo stretchy="false">)</mo><mi mathvariant="normal">"</mi><mtext>代表当前时间</mtext><mo separator="true">,</mo><mi mathvariant="normal">"</mi></mrow><annotation encoding="application/x-tex">now()"代表当前时间,"</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">n</span><span class="mord mathnormal">o</span><span class="mord mathnormal" style="margin-right:0.02691em;">w</span><span class="mopen">(</span><span class="mclose">)</span><span class="mord">"</span><span class="mord cjk_fallback">代表当前时间</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">"</span></span></span></span>getUserID"代表当前用户。</p>
<table>
<thead>
<tr>
<th>函数名</th>
<th>作用</th>
<th>需注意</th>
</tr>
</thead>
<tbody>
<tr>
<td>$now()</td>
<td>当前时间</td>
<td>date字段类型不可用</td>
</tr>
<tr>
<td>$getUserID</td>
<td>当前用户</td>
<td></td>
</tr>
<tr>
<td>$autoInc</td>
<td>自动编号</td>
<td><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>a</mi><mi>u</mi><mi>t</mi><mi>o</mi><mi>I</mi><mi>n</mi><mi>c</mi><mtext>自动加</mtext><mn>1</mn></mrow><annotation encoding="application/x-tex">autoInc自动加1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal">a</span><span class="mord mathnormal">u</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mord mathnormal">n</span><span class="mord mathnormal">c</span><span class="mord cjk_fallback">自动加</span><span class="mord">1</span></span></span></span>autoInc(10)自定义加数</td>
</tr>
</tbody>
</table>
<h4 id="字段别名">字段别名 </h4>
<p>在多个单据都使用了编号这个字段，但希望外贸单的编号名叫外贸编号，内贸单用内贸编号,注意国际化配置</p>
<h4 id="最小宽度">最小宽度 </h4>
<p>设置字段在表内的宽度，最窄50，依次往上加</p>
<p><strong>对齐方式</strong></p>
<p>设置字段内容对齐方式，可设置左、右、居中对齐。</p>
<h4 id="宽度">宽度： </h4>
<p>单据或者表单功能设置字段宽度，将功能整行宽度分为24等分，宽度为24时，该字段占据整行；默认为6，一行为四等分。</p>
<h4 id="汇总方式">汇总方式 </h4>
<p><img src="./assets/image/sys/sum.png" alt="汇总方式"></p>
<p>用于数量字段求和、求平均值、最大值、最小值。</p>
<h4 id="字段数据类型">字段数据类型 </h4>
<p><img src="./assets/image/sys/type1.png" alt="类型一"></p>
<p><img src="./assets/image/sys/type2.png" alt="类型二"></p>
<p>根据字段类型可选不同的数据类型，如把标题字段数据类型设置为颜色之后，新增该字段数据会有一个颜色选择器</p>
<h4 id="多对一">多对一 </h4>
<p><a id="m2o_back" href="">点击返回</a></p>
<ul>
<li>
<p>多对一的使用情况比较广泛，主要功能为引用其他功能表中的字段值。直接使用与组件关联时使用</p>
<p>1.直接使用:该字段的值来自于其他表格内的字段，可选择对应表的对应字段，<br>
例如业务表引入产品表的产品编码，字段数据修改时会有一个放大镜效果，点击放大镜可以选择来源表的描述字段作为该字段的值。  <strong><a href="#m2o_config1">详细操作</a></strong><br>
2.主从表做组件关联时，从表使用多对一展示主表的描述字段值，从表新增时，从表的多对一字段会自动填充内容。 <strong><a href="#m2o_config2">详细操作</a></strong></p>
</li>
</ul>
<p><strong>注意</strong>：多对一字段不可作为描述字段使用</p>
<ul>
<li>
<p><strong>是否全功能显示</strong><br>
配置多对一时，可选择打开全功能或单功能<br>
面对复杂的功能组件时，可选择只打开该组件的单功能，提升页面加载速度<br>
多对一设置可实现选取多表界面中某一指定表作为选项来源，如果想选择明细表那就在多对一的时候就选择明细表，并关闭全功能展示按钮<br>
<img src="./assets/image/sys/IsAll.png" alt="多对一"></p>
</li>
<li>
<p><strong><a href="#m2o_back" id="m2o_config1">详细操作</a></strong></p>
<p><img src="./assets/image/sys/m2o1.png" alt="多对一"><br>
<strong>编号指向说明</strong><br>
1、点击放大镜按钮，进入查询弹窗</p>
<p>2、选择来源表数据，双击选中，图例中<strong>设备名称</strong>字段为描述字段。</p>
</li>
<li>
<p><strong><a href="#m2o_back" id="m2o_config2">详细操作</a></strong></p>
<p><img src="./assets/image/sys/m2o.png" alt="多对一"></p>
</li>
</ul>
<h4 id="下拉选项">下拉选项 </h4>
<p><strong><a id="slc_field" href="">⑨.下拉选项</a></strong></p>
<pre data-role="codeBlock" data-info="text" class="language-text text"><code>通过固定的字段附加列表设定下拉项并与此表做关联，
例如单据类型，简单辅助属性，设置之后新增该字段数据，可以直接在下拉框中选择
</code></pre><p><img src="./assets/image/sys/slc1.png" alt="下拉列表"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.选择字段,注意字段必须是数字类型（int(5)）<br>
2.点击下拉选项放大镜按钮<br>
3.选择需要的下拉列表属性,双击选中<br>
4.为该属性的下拉选项</p>
</li>
</ul>
<p><strong>注意</strong>：同一字段不可同时配置下拉选项不可以和多对一，二者只能选其一<br>
<img src="./assets/image/sys/xiala1.png" alt="下拉列表"></p>
<p>下图是配置完成后的效果</p>
<p><img src="./assets/image/sys/slc2.png" alt="效果"></p>
<p>如果现有的字段下拉属性没有想要的下拉列表，可以在系统中新增，下方是新增操作步骤</p>
<p><img src="./assets/image/sys/add1.png" alt="效果"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.点击左侧系统管理<br>
2.进入字段附加列表属性</p>
</li>
</ul>
<p><img src="./assets/image/sys/add.png" alt="效果"></p>
<ul>
<li>
<p><strong>编号指向说明</strong></p>
<p>1.点击新增<br>
2.配置属性类型名称，注意属性类型名称必须填写<br>
3.属性类型名称必须遵循国际化填写<br>
4.为该属性类型添加数据<br>
5.文本字段需要遵循国际化规范填写</p>
</li>
</ul>
<h4 id="联查过滤">联查过滤 </h4>
<p id="joint_search_back"></p>
<p><strong>使用说明</strong><br>
联查过滤用于下拉字段的过滤选择，触发时机为用户点击配置联查过滤api的下拉字段时，根据api返回的过滤条件，展示过滤后的下拉菜单选项；<br>
举例说明：第一个下拉字段用户选择了“浙江省”，下一个下拉字段展示“浙江省”内所有城市选项；</p>
<ul>
<li><strong>步骤</strong>
<ul>
<li>1.进入规则编辑，新建规则， <strong><a href="#joint_search1">详细操作</a></strong></li>
<li>2.进入规则库，复制新建的规则编号，  <strong><a href="#joint_search2">详细操作</a></strong></li>
<li>3.进入公共API，左侧选择规则库，新增一条数据，名称字段粘贴新建规则编号，  <strong><a href="#joint_search3">详细操作</a></strong></li>
<li>4.进入系统功能，字段配置中，联查过滤选择公共API新增数据，   <strong><a href="#joint_search4">详细操作</a></strong></li>
</ul>
</li>
</ul>
<br>
<ul>
<li>
<p><strong><a href="#joint_search_back" id="joint_search1">新建规则具体操作</a></strong></p>
<ul>
<li>
<p>第一步，新建画布，填写基础信息与参数<br>
<img src="./assets/image/sys/joint_search1.png" alt="新建规则"></p>
<p><strong>编号指向说明</strong></p>
<ul>
<li>1.点击新增，新建画布；</li>
<li>2.拖拽左侧节点图形进行绘制；</li>
<li>3.绘制完成点击排版，画布样式自动排版；</li>
<li>4.填写基础信息，id字段与编号字段自动填写，填写名称，触发选择API调用；</li>
<li>5.输入参数，funName、fieldName、currRow，值类型选择字符；</li>
<li>6.输出参数，result，数据类型选择字符</li>
</ul>
</li>
</ul>
<br>
<ul>
<li>第二步，选中“当”图形节点，节点属性中点击高级编辑图标按钮，输入判断条件表达式<br>
<img src="./assets/image/sys/joint_search2.png" alt="新建规则"><br>
<img src="./assets/image/sys/joint_search3.png" alt="新建规则"></li>
</ul>
<br>
<ul>
<li>第三步，同上，选中“表达式”图形节点，输入规则表达式<br>
<img src="./assets/image/sys/joint_search4.png" alt="新建规则"></li>
</ul>
<br>
<ul>
<li>第四步， 保存编译后，点击审核并加入运行库<br>
<img src="./assets/image/sys/joint_search5.png" alt="新建规则"><br>
<strong>编号指向说明</strong>
<ul>
<li>1.点击保存</li>
<li>2.点击编译</li>
<li>3.点击审核</li>
<li>4.点击加入运行库</li>
</ul>
</li>
</ul>
</li>
</ul>
<br>
<ul>
<li><strong><a href="#joint_search_back" id="joint_search2">复制规则编号</a></strong><br>
<img src="./assets/image/sys/joint_search6.png" alt="复制规则编号"><br>
<strong>编号指向说明</strong>
<ul>
<li>1.复制新建规则的编号</li>
<li>2.DSL字段为编译后的代码</li>
</ul>
</li>
</ul>
<br>
<ul>
<li><strong><a href="#joint_search_back" id="joint_search3">公共API新建数据</a></strong><br>
<img src="./assets/image/sys/joint_search7.png" alt="公共API新建数据"></li>
</ul>
<br>
<ul>
<li><strong><a href="#joint_search_back" id="joint_search4">下拉选项字段配置中，联查过滤选择规则库新增规则</a></strong><br>
<img src="./assets/image/sys/joint_search8.png" alt="联查过滤"></li>
</ul>
<h4 id="字段事件">字段事件 </h4>
<p>字段事件原理和用法：<br>
<img src="./assets/image/sys/fieldEvent1.png" alt="字段事件原理"></p>
<p><img src="./assets/image/sys/fieldEvent.png" alt="字段事件"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.选中字段<br>
2.点击添加按钮，添加字段事件<br>
3.下拉选择事件触发类型</li>
</ul>
<p><img src="./assets/image/sys/fieldEvent2.png" alt="字段事件"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.点击放大镜按钮，打开公共API查询弹窗<br>
2.双击选择API</li>
</ul>
<h4 id="子查询">子查询 </h4>
<p>所谓子查询就是将一个查询结果作为判断条件或者作为一张虚拟表在这个结果的基础上进行另一个查询。<br>
通过选入某一字段的值而将此值在其他表关联的其他字段引用到这个字段，并且与原表值同步，注意子查询字段不可修改</p>
<h4 id="字段过滤与排序">字段过滤与排序 </h4>
<p>1.初始化过滤：数据量大时进行初始化过滤，减少页面加载时间，如初始化时只展示日期相同的字段数据<br>
<img src="./assets/image/sys/initialize_filter.png" alt="初始化过滤"></p>
<p>2.默认过滤：可自定义设置过滤条件<br>
3.初始化排序：可根据时间进行排序，如正序或倒序<br>
4.初始化权重</p>
<h4 id="图片文件上传与富文本配置">图片文件上传与富文本配置 </h4>
   <br>
<ul>
<li>图片文件上传配置：选取title标题字段和json,vachar,mediumtext类型字段，json,vachar,mediumtext类型字段数据类型选择图片或文件<br>
<img src="./assets/image/sys/picture.png" alt="图片"><br>
<strong>编号指向说明</strong><br>
1.选取title标题字段；<br>
1.选取json、vachar、mediumtext类型字段；<br>
2.字段数据类型选择图片或者文件；</li>
</ul>
   <br>
<ul>
<li>配置效果及使用说明</li>
</ul>
<p><img src="./assets/image/sys/picture3.png" alt="图片"></p>
<p><strong>编号指向说明</strong><br>
1.编辑状态下，点击上传，可上传多个，图片支持上传.jpg,.png,.jpeg,.bmp,.gif,.webp格式；文件上传支持txt文本文档，excel工作表，video视频，audio音频，image图片，drawing绘图。<br>
2.编辑状态下点击删除；非编辑状态下，图片只能点击预览，文件不可预览。<br>
3.文件上传成功自动生成对应文件格式图标<br>
4.选中文件图标，点击下载按钮，可下载选中文件</p>
  <br>
<ul>
<li>
<p><strong>注意:</strong><br>
1、配置文件上传功能必须添加title字段，否则文件上传成功但无法保存。<br>
2、保存后的文件或图片数据会存储在系统管理中的文件库，功能中添加的title字段能够帮助文件库定位到具体功能的具体行，充当标识作用，文件进行删除后系统会将文件数据回收到系统管理中的回收桶中，系统通过任务管理自动定时删除。<br>
<img src="./assets/image/sys/picture4.png" alt="图片"></p>
<p><strong>编号指向说明</strong><br>
1.系统管理中文件库，保存后的文件图片数据存储于此<br>
2.文件数据信息使用json格式存储与内容单元格中<br>
3.文件删除后系统会将文件数据回收到系统管理中的回收桶中，系统通过任务管理自动定时删除。</p>
<br>
</li>
<li>
<p>文件上传格式详细参考：</p>
<table>
<thead>
<tr>
<th>文件类型</th>
<th>匹配格式</th>
</tr>
</thead>
<tbody>
<tr>
<td>text</td>
<td>'.txt', '.rtf', '.md', '.doc', '.docx', '.pdf', '.htm', '.html'</td>
</tr>
<tr>
<td>sheet</td>
<td>'.xls', '.xlsx','.csv'</td>
</tr>
<tr>
<td>video</td>
<td>'.avi','.wmv', '.mpg','.mpeg','.mov', '.rm','.ram','.swf','.flv','.mp4','.mkv',rmvb'</td>
</tr>
<tr>
<td>audio</td>
<td>'.mp3', '.wav', '.aac', '.flac', '.m4a', '.mid', '.ape', '.ogg'</td>
</tr>
<tr>
<td>image</td>
<td>'.jpg','.jpeg','.png','.gif','.bmp','.psd','.tiff','.webp'</td>
</tr>
<tr>
<td>drawing</td>
<td>'.dwg','.dxf','.dwt','.dws','.dxf','.dwf','.3ds','.max','.obj','fbx','.stl','.rfa','.rte','.rvt','.dgn'</td>
</tr>
</tbody>
</table>
</li>
</ul>
<br>
  <!-- 16M，20k，25万字 -->
<ul>
<li>富文本配置<br>
选取title标题字段和vachar,mediumtext类型字段，vachar,mediumtext类型字段数据类型选择富文本。<br>
<img src="./assets/image/sys/richText.png" alt="图片"><br>
<strong>编号指向说明</strong><br>
1.选取title标题字段<br>
2.选取vachar，mediumtext类型字段；<br>
3.字段数据类型选择富文本；
<ul>
<li>配置效果及使用说明<br>
<img src="./assets/image/sys/richText2.png" alt="图片"><br>
<strong>说明：</strong><br>
点击图标，弹出富文本弹窗<br>
非编辑状态下为预览模式<br>
编辑状态可插入图片，媒体，表格等操作<br>
注意富文本添加内容大小限制，约为25万个字符。</li>
</ul>
</li>
</ul>
<h4 id="不全局搜索">不全局搜索 </h4>
<ul>
<li>
<p>在系统功能中，搜索选中配置组件，选择字段开启不全局搜索<br>
<img src="./assets/image/sys/notAllSearch.png" alt="图片"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.进入系统功能，选中配置组件；<br>
2.选择相应字段，开启不全局搜索</li>
</ul>
</li>
<li>
<p>组件内搜索开启不全局搜索字段内容时，清空主表与相关联的从表数据<br>
<img src="./assets/image/sys/notAllSearch1.png" alt="图片"></p>
<ul>
<li><strong>编号指向说明</strong><br>
1.搜索开启不全局搜索字段内容<br>
2.清空主表与相关联的从表数据。</li>
</ul>
</li>
</ul>
<h4 id="赋值节点名称">赋值节点名称 </h4>
<ul>
<li>赋值节点名称是画布组件配置中独有的功能，用于将画布的主表数据赋值与节点，从而免于手动修改节点名称。</li>
<li>在画布字段配置中，选择字段，然后打开详细配置，开启赋值节点名称。<br>
<img src="./assets/image/sys/node_name1.png" alt="赋值节点名称"></li>
<li>编辑状态下，右键选中画布节点，修改主表数据，该节点名称也会随之修改。<br>
<img src="./assets/image/sys/node_name2.png" alt="赋值节点名称"></li>
</ul>
<h4 id="控件配置">控件配置 </h4>
<p><img src="./assets/image/sys/oControl.png" alt="控件配置"></p>
<p><strong>系统操作</strong></p>
<p><img src="./assets/image/sys/oControl1.png" alt="控件配置"></p>
<p>第一步，&lt;表格&gt;组件中选取json类型字段<br>
第二步，点击进入该字段详细配置，字段数据类型选择控件<br>
第三步，根据数据来源填写该字段子查询内容，下表为示例</p>
<table>
<thead>
<tr>
<th>来源方式</th>
<th>子查询内容</th>
</tr>
</thead>
<tbody>
<tr>
<td>直接给</td>
<td>select '{"cmd":0,"data":{"comps":"[{....}]"}}'   省略号内容为控件详细json配置，可参考控件配置表中的内容字段</td>
</tr>
<tr>
<td>来自控件配置</td>
<td>select '{"cmd":2,"data":{"controlTitle":"唯一控件名，来自于控件配置表中的标题"}}'</td>
</tr>
<tr>
<td>来自pubAPI(sp libRule webReq sysRule)</td>
<td>select '{"cmd":1,"data":{"pubApiName":"api名，来自于公共api的名称"}}'</td>
</tr>
</tbody>
</table>
<h3 id="规则">规则 </h3>
<p>规则是表格组件的私有功能，可以通过指定字段内容控制表格中行、单元格、列的样式与输入状态。</p>
<h4 id="如何根据字段内容设置当前行不可编辑">如何根据字段内容设置当前行不可编辑 </h4>
<p><img src="./assets/image/sys/rulesByTable.png" alt="规则"></p>
<p>第一步，在&lt;表格&gt;字段配置中点击添加规则按钮，然后点击增加条件，填写条件1，将条件字段填写其中，注意不能带有空格字符，然后根据条件字段的数据类型选择相应类型（本例中条件字段为int类型，因此选择数值），判断条件为字段内容等于1</p>
<p>第二步，点击增加结果，结果类型选择行，开启禁止输入，修改背景颜色。</p>
<p>效果示例：<br>
<img src="./assets/image/sys/rulesByTable1.png" alt="规则"></p>
<h3 id="字段索引">字段索引 </h3>
<p><img src="./assets/image/sys/ziduan3.png" alt="字段配置"></p>
<h4 id="唯一索引">唯一索引 </h4>
<p>①. 唯一索引</p>
<p>唯一索引可作为数据的一个合法验证手段，例如学生表的身份证号码字段，人为规定该字段不得重复，那么就使用唯一索引。<br>
建议将描述字段,id类型字段（关联执行id、材料id）设为唯一索引。<br>
唯一索引可设置多个，使用多个字段组合确保该行数据的唯一性。<br>
<img src="./assets/image/sys/unique_index.png" alt="字段配置"></p>
<h4 id="索引">索引 </h4>
<p>②. 索引</p>
<p>普通索引用于提高数据库的查询效率和性能，<br>
它通过为表中的一列或多列创建索引，使得在查询时可以快速地定位和访问所需的数据行，从而加速查询速度。</p>
<h1 id="faq常见问题">FAQ常见问题 </h1>
<h2 id="无效参数">无效参数 </h2>
<h3 id="问题场景">问题场景 </h3>
<p><img src="./assets/image/sys/navName.jpg" alt="无效参数"></p>
<blockquote>
<ol>
<li>用户一新增功能，确定功能字段</li>
<li>用户二修改功能字段，（手动改分组名）</li>
<li>用户一对该功能界面操作后保存出现‘无效参数’错误</li>
</ol>
</blockquote>
<p><strong>解决措施</strong></p>
<p>根据API报错信息发现字段报错，找到功能相应字段删除并重新配置</p>
<h2 id="libfieldid错误">libFieldID错误 </h2>
<p><strong>问题场景</strong></p>
<p><img src="./assets/image/sys/fieldLib.png" alt="无效参数"></p>
<blockquote>
<ol>
<li>用户一新增功能，确定功能字段 （以note字段为例）</li>
<li>用户二在字段库中删除note字段</li>
<li>用户一进入系统管理&gt;系统功能修改该功能配置，点击保存后出现‘字段库中没有note这个数据’错误</li>
</ol>
</blockquote>
<p><strong>解决措施</strong></p>
<p>在字段库中重新配置note字段，再去修改功能添加该字段配置并保存</p>
<h2 id="超级管理员新建功能刷新后未立即出现在导航和菜单位置">超级管理员新建功能刷新后未立即出现在导航和菜单位置 </h2>
<p><strong>问题场景</strong></p>
<p>超级管理员特性：超级管理员可以做好功能后自己为该功能添加权限，因此会更新权限相关的数据，更新过程采用协程异步运行，实测平均耗时17秒。</p>
<p><strong>解决措施</strong></p>
<p>等待10~20秒后刷新系统新建功能生效。</p>
<h2 id="点击编辑-删除-刷新出现数据为空报错">点击编辑、删除、刷新出现数据为空报错 </h2>
<p><img src="./assets/image/sys/nullData.png" alt="数据为空"></p>
<p><strong>问题场景</strong></p>
<p>组件json配置新增eventGroup,用于处理组件协调，原组件json配置没有该属性，需要系统功能配置中重新保存一下该组件</p>
<p><strong>解决措施</strong></p>
<p>系统功能配置中重新保存一下该组件</p>
<h2 id="单据编辑完点击保存出现无权限">单据编辑完点击保存出现无权限 </h2>
<p><img src="./assets/image/sys/permission.png" alt="数据为空"></p>
<p><strong>解决措施</strong></p>
<p>系统功能配置中重新保存一下该组件</p>
<h2 id="下拉选项字段保存后不显示">下拉选项字段保存后不显示 </h2>
<p><img src="./assets/image/sys/slc4.png" alt="数据"></p>
<p><strong>问题场景</strong></p>
<ul>
<li>
<p>分两种情况</p>
<ul>
<li>
<p>情况一：字段类型错误，未使用数字类型字段[int(5)]配置下拉选项</p>
</li>
<li>
<p>情况二： 用户发现字段类型错误后，去字段库中对该字段进行修改为数字类型，再到功能面板中重新选择该字段并配置下拉选项。<br>
<strong>解决措施</strong></p>
</li>
</ul>
</li>
<li>
<p>情况一：选择int(5)类型字段重新配置下拉选项。</p>
</li>
<li>
<p>情况二：在功能配置面板中删除该字段并保存，再次打开功能面板重新选取该int(5)字段，为该字段配置下拉选项id。</p>
</li>
</ul>
<h2 id="画布节点右键主表数据不显示">画布节点右键主表数据不显示 </h2>
<p><img src="./assets/image/sys/mainTable2.jpg" alt="数据"></p>
<p><strong>问题场景</strong></p>
<p>缺少必须字段node_id</p>
<p><strong>解决措施</strong></p>
<p>node_id字段勾选节点数据</p>
<h2 id="字段列表中的未知列">字段列表中的未知列 </h2>
<p><img src="./assets/image/sys/unknown.png" alt="数据"></p>
<p><strong>问题场景</strong></p>
<p>该表的字段在客户端被修改，导致保存时出现系统字段与数据库字段不对应的情况，触发报错。</p>
<p><strong>解决措施</strong></p>
<p>检查修改的字段，在系统功能中删除并重新选取字段。</p>
<h2 id="外键约束">外键约束 </h2>
<p><img src="./assets/image/sys/whereClause.png" alt="外键约束"></p>
<p><strong>问题场景</strong></p>
<p>外键约束是指一张表包含了另一个表中的主键或唯一键的值。外键约束可以保证每个引用表中的值都存在于被引用表中，从而避免了无效的引用和数据的不一致性。&lt;表一&gt;使用M2O或者下拉引用&lt;表二&gt;时，系统自动添加外键关联表数据，此时&lt;表二&gt;中被关联的数据禁止删除，当&lt;表一&gt;被删除，外键引用数据未及时清除，&lt;表二&gt;删除数据仍会报外键约束错误</p>
<p><strong>解决措施</strong></p>
<p>任务管理中会定时自动清理无用的外键关联表数据</p>
<h2 id="验证失败或者-579be90parse-erro错误">验证失败或者-579,BE,90,Parse erro错误 </h2>
<p><strong>问题场景</strong></p>
<p>如果服务器和客户端的时区不同，或者服务器和客户端的时间不同步，会造成报验证失败或者-579,BE,90,Parse erro错误</p>
<h2 id="字段附加列表使用过后就删除报外键关联错误">字段附加列表使用过后就删除,报外键关联错误。 </h2>
<p><strong>问题场景</strong></p>
<p>字段附加列表中的状态被引用后，不可在字段附加列表中再直接删除该状态。</p>
<p><img src="./assets/image/sys/where_key.png" alt="外键约束"></p>
<h2 id="mto没有描述字段">MTO没有描述字段 </h2>
<p><strong>问题场景</strong></p>
<p>打开功能之后报错，报错信息为MTO没有描述字段</p>
<p><strong>解决措施</strong></p>
<p>功能字段中使用多对一引用其他功能，而其他功能缺少描述字段，因此添加描述字段后报错解决。</p>
<h2 id="系统功能字段配置中删除字段报错">系统功能字段配置中删除字段报错 </h2>
<p><strong>问题场景</strong><br>
在删除字段时，系统会对当前字段做有效性校验，校验不通过禁止用户删除字段并抛出错误，本例中系统检查发现class_code字段中使用了错误的子查询语句，即子查询语句中查找的表中无class_code字段，因此禁止用户删除功能中的字段，并且在功能中也会出现这个错误<br>
<img src="./assets/image/sys/error_del_field.png" alt="删除字段报错"><br>
<img src="./assets/image/sys/error_sub_query.png" alt="删除字段报错"></p>
<p><strong>解决措施</strong></p>
<p>查看功能中的子查询语句是否有效，对子查询字段进行修改或者直接删除子查询字段。</p>
<h2 id="修改表名容易出现的误操作">修改表名容易出现的误操作 </h2>
<p><strong>问题场景</strong>：<br>
新建功能或者表格之后，想修改表名或者功能名</p>
<p><strong>误操作：</strong><br>
在系统表中直接修改表名<br>
导致：表名与配置中表名不同步，导致一系列的关联、引用报错问题<br>
在功能搭建弹窗直接修改表名<br>
导致：会新建一个（功能）表格<br>
<strong>正确操作：</strong><br>
1、先在系统功能表格中直接修改“名”值<br>
点击表格的工具栏进行  保存<br>
2、后打开功能进入功能搭建弹窗中再次修改对应的“表名或者功能名”<br>
能搭建弹窗工具栏进行  保存<br>
3、与此张表m2o关联的字段要重新 选择赋值（修改）</p>
<h1 id="复杂错误代码编号">复杂错误代码编号 </h1>
<h2 id="编号说明">编号说明 </h2>
<p>系统中出现报错，报错信息内容过长不适合使用全局提示，因此在全局提示中使用报错编号提示用户进入使用文档查看该编号对应的详细报错原因以及解决措施。</p>
<p><img src="./assets/image/sys/bugNumber.png" alt="数据"></p>

      </div>
      <div class="md-sidebar-toc">
<div class="md-toc">
<details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#平台介绍" class="md-toc-link"><p>平台介绍</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#浏览器版本要求" class="md-toc-link">
            <p>浏览器版本要求</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#登录" class="md-toc-link">
            <p>登录</p>

          </a></div><details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#主页功能区说明" class="md-toc-link"><p>主页功能区说明</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#主页介绍" class="md-toc-link">
            <p>主页介绍</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#1标题区" class="md-toc-link">
            <p>1标题区</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#2导航栏" class="md-toc-link">
            <p>2导航栏</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#3顶部功能区" class="md-toc-link">
            <p>3顶部功能区</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4主窗口区" class="md-toc-link">
            <p>4主窗口区</p>

          </a></div><details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#系统管理" class="md-toc-link"><p>系统管理</p>
</a>
          </summary>
        <div>
          <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#4-1功能配置模块" class="md-toc-link"><p>4-1功能配置模块</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-1系统功能" class="md-toc-link">
            <p>4-1-1系统功能</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-2功能分组" class="md-toc-link">
            <p>4-1-2功能分组</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-3菜单" class="md-toc-link">
            <p>4-1-3菜单</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-4报表设计" class="md-toc-link">
            <p>4-1-4报表设计</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-5用户偏好" class="md-toc-link">
            <p>4-1-5用户偏好</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-6消息" class="md-toc-link">
            <p>4-1-6消息</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-7打印配置" class="md-toc-link">
            <p>4-1-7打印配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-8通用方法配置" class="md-toc-link">
            <p>4-1-8通用方法配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-1-9自定义按钮状态记录" class="md-toc-link">
            <p>4-1-9自定义按钮状态记录</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#4-2基础设施模块" class="md-toc-link"><p>4-2基础设施模块</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-1字段库" class="md-toc-link">
            <p>4-2-1字段库</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-2系统关键字" class="md-toc-link">
            <p>4-2-2系统关键字</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-3国际化" class="md-toc-link">
            <p>4-2-3国际化</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-4字段附加列表属性" class="md-toc-link">
            <p>4-2-4字段附加列表属性</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-5基础设置" class="md-toc-link">
            <p>4-2-5基础设置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-6帐套" class="md-toc-link">
            <p>4-2-6帐套</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-7外观元素" class="md-toc-link">
            <p>4-2-7外观元素</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-8公共api" class="md-toc-link">
            <p>4-2-8公共API</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-9控件配置" class="md-toc-link">
            <p>4-2-9控件配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-2-10提示消息" class="md-toc-link">
            <p>4-2-10提示消息</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#4-3权限设置" class="md-toc-link"><p>4-3权限设置</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-3-1如何新增新用户" class="md-toc-link">
            <p>4-3-1如何新增新用户</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-3-2如何添加新角色" class="md-toc-link">
            <p>4-3-2如何添加新角色</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-3-3权限优先级" class="md-toc-link">
            <p>4-3-3权限优先级</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-3-5如何使用单点登录" class="md-toc-link">
            <p>4-3-5如何使用单点登录</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-3-6用户表操作注意事项" class="md-toc-link">
            <p>4-3-6用户表操作注意事项</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#4-4运维" class="md-toc-link"><p>4-4运维</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-1自动编号" class="md-toc-link">
            <p>4-4-1自动编号</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-2编辑锁" class="md-toc-link">
            <p>4-4-2编辑锁</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-3任务管理" class="md-toc-link">
            <p>4-4-3任务管理**</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-4引用外键" class="md-toc-link">
            <p>4-4-4引用外键**</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-5国际化日志" class="md-toc-link">
            <p>4-4-5国际化日志</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-6废弃表" class="md-toc-link">
            <p>4-4-6废弃表</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-7图库" class="md-toc-link">
            <p>4-4-7图库</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-8文件库" class="md-toc-link">
            <p>4-4-8文件库</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-9回收桶" class="md-toc-link">
            <p>4-4-9回收桶</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4-4-10系统视图" class="md-toc-link">
            <p>4-4-10系统视图</p>

          </a></div>
        </div>
      </details>
    
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#逻辑引擎" class="md-toc-link"><p>逻辑引擎</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#1术语声明" class="md-toc-link">
            <p>1术语声明</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#2规则约定" class="md-toc-link">
            <p>2规则约定</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#3逻辑编辑器" class="md-toc-link">
            <p>3逻辑编辑器</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#4语法" class="md-toc-link">
            <p>4语法</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#5系统api" class="md-toc-link">
            <p>5.系统API</p>

          </a></div>
        </div>
      </details>
    
        </div>
      </details>
    
        </div>
      </details>
    <details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#功能配置" class="md-toc-link"><p>功能配置</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#架构" class="md-toc-link">
            <p>架构</p>

          </a></div><details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#模板配置" class="md-toc-link"><p>模板配置</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#说明" class="md-toc-link">
            <p>说明</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#模板搭建" class="md-toc-link">
            <p>模板搭建</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#搭建步骤" class="md-toc-link">
            <p>搭建步骤</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#功能搭建" class="md-toc-link"><p>功能搭建</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#表格配置" class="md-toc-link">
            <p>表格配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#表单配置" class="md-toc-link">
            <p>表单配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#视图配置" class="md-toc-link">
            <p>视图配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#标签页配置" class="md-toc-link">
            <p>标签页配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#引用组件配置" class="md-toc-link">
            <p>引用组件配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#多表表单配置" class="md-toc-link">
            <p>多表表单配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#引用实表配置" class="md-toc-link">
            <p>引用实表配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#报表图表配置" class="md-toc-link">
            <p>报表图表配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#树状表格配置" class="md-toc-link">
            <p>树状表格配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#日期导航配置" class="md-toc-link">
            <p>日期导航配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#单据配置" class="md-toc-link">
            <p>单据配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#画布配置" class="md-toc-link">
            <p>画布配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#引用画布配置" class="md-toc-link">
            <p>引用画布配置</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#详细配置" class="md-toc-link"><p>详细配置</p>
</a>
          </summary>
        <div>
          <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#组件明细详细配置" class="md-toc-link"><p>组件明细详细配置</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#功能名" class="md-toc-link">
            <p>功能名</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#功能注释" class="md-toc-link">
            <p>功能注释</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#数据库类型" class="md-toc-link">
            <p>数据库类型</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#组件关联" class="md-toc-link">
            <p>组件关联</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#qbe查询" class="md-toc-link">
            <p>QBE查询</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#条码扫描" class="md-toc-link">
            <p>条码扫描</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#表格样式" class="md-toc-link">
            <p>表格样式</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#工具栏" class="md-toc-link">
            <p>工具栏</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#表格数据处理" class="md-toc-link">
            <p>表格数据处理</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#自定义按钮" class="md-toc-link">
            <p>自定义按钮</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#事件" class="md-toc-link">
            <p>事件</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#表格模式" class="md-toc-link">
            <p>表格模式：</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#弹窗编辑-后续废弃" class="md-toc-link">
            <p>弹窗编辑 （后续废弃）</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段分组" class="md-toc-link">
            <p>字段分组</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#关联表格" class="md-toc-link">
            <p>关联表格</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#分组配置" class="md-toc-link">
            <p>分组配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#导出功能" class="md-toc-link">
            <p>导出功能</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#导入功能" class="md-toc-link">
            <p>导入功能</p>

          </a></div>
        </div>
      </details>
    <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段设置" class="md-toc-link">
            <p>字段设置</p>

          </a></div><details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#字段详细配置" class="md-toc-link"><p>字段详细配置</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段属性配置" class="md-toc-link">
            <p>字段属性配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#默认值" class="md-toc-link">
            <p>默认值</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段别名" class="md-toc-link">
            <p>字段别名</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#最小宽度" class="md-toc-link">
            <p>最小宽度</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#宽度" class="md-toc-link">
            <p>宽度：</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#汇总方式" class="md-toc-link">
            <p>汇总方式</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段数据类型" class="md-toc-link">
            <p>字段数据类型</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#多对一" class="md-toc-link">
            <p>多对一</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#下拉选项" class="md-toc-link">
            <p>下拉选项</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#联查过滤" class="md-toc-link">
            <p>联查过滤</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段事件" class="md-toc-link">
            <p>字段事件</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#子查询" class="md-toc-link">
            <p>子查询</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段过滤与排序" class="md-toc-link">
            <p>字段过滤与排序</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#图片文件上传与富文本配置" class="md-toc-link">
            <p>图片文件上传与富文本配置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#不全局搜索" class="md-toc-link">
            <p>不全局搜索</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#赋值节点名称" class="md-toc-link">
            <p>赋值节点名称</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#控件配置" class="md-toc-link">
            <p>控件配置</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#规则" class="md-toc-link"><p>规则</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#如何根据字段内容设置当前行不可编辑" class="md-toc-link">
            <p>如何根据字段内容设置当前行不可编辑</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#字段索引" class="md-toc-link"><p>字段索引</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#唯一索引" class="md-toc-link">
            <p>唯一索引</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#索引" class="md-toc-link">
            <p>索引</p>

          </a></div>
        </div>
      </details>
    
        </div>
      </details>
    
        </div>
      </details>
    <details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#faq常见问题" class="md-toc-link"><p>FAQ常见问题</p>
</a>
          </summary>
        <div>
          <details style="padding:0;;padding-left:24px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#无效参数" class="md-toc-link"><p>无效参数</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#问题场景" class="md-toc-link">
            <p>问题场景</p>

          </a></div>
        </div>
      </details>
    <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#libfieldid错误" class="md-toc-link">
            <p>libFieldID错误</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#超级管理员新建功能刷新后未立即出现在导航和菜单位置" class="md-toc-link">
            <p>超级管理员新建功能刷新后未立即出现在导航和菜单位置</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#点击编辑-删除-刷新出现数据为空报错" class="md-toc-link">
            <p>点击编辑、删除、刷新出现数据为空报错</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#单据编辑完点击保存出现无权限" class="md-toc-link">
            <p>单据编辑完点击保存出现无权限</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#下拉选项字段保存后不显示" class="md-toc-link">
            <p>下拉选项字段保存后不显示</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#画布节点右键主表数据不显示" class="md-toc-link">
            <p>画布节点右键主表数据不显示</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段列表中的未知列" class="md-toc-link">
            <p>字段列表中的未知列</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#外键约束" class="md-toc-link">
            <p>外键约束</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#验证失败或者-579be90parse-erro错误" class="md-toc-link">
            <p>验证失败或者-579,BE,90,Parse erro错误</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#字段附加列表使用过后就删除报外键关联错误" class="md-toc-link">
            <p>字段附加列表使用过后就删除,报外键关联错误。</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#mto没有描述字段" class="md-toc-link">
            <p>MTO没有描述字段</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#系统功能字段配置中删除字段报错" class="md-toc-link">
            <p>系统功能字段配置中删除字段报错</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#修改表名容易出现的误操作" class="md-toc-link">
            <p>修改表名容易出现的误操作</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#复杂错误代码编号" class="md-toc-link"><p>复杂错误代码编号</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#编号说明" class="md-toc-link">
            <p>编号说明</p>

          </a></div>
        </div>
      </details>
    
</div>
</div>
      <a id="sidebar-toc-btn">≡</a>
    
    
    
    
    
    
<script>

var sidebarTOCBtn = document.getElementById('sidebar-toc-btn')
sidebarTOCBtn.addEventListener('click', function(event) {
  event.stopPropagation()
  if (document.body.hasAttribute('html-show-sidebar-toc')) {
    document.body.removeAttribute('html-show-sidebar-toc')
  } else {
    document.body.setAttribute('html-show-sidebar-toc', true)
  }
})
</script>
<link rel="stylesheet" href="./css/index.css">

<link rel="stylesheet" href="./assets/font/iconfont.css">


<script src="./index.js"></script>    
  
    </body></html>